// 完成以下要求:
// 定义一个长度为2的元素为char类型的数组
char[] arr = new char[2];
// 定义一个长度为5的元素为double类型的数组
double[] arr = new double[5];
// 定义一个长度为8的元素为字符串类型的数组
String[] arr = new String[8];
// 定义一个长度为0的元素为boolean类型的数组
boolean[] arr = new boolean[0];
// 完成以下要求
// 定义一个数组, 存放 'a', 'b', 'c'
char[] arr = new char[]{'a', 'b', 'c'}; // 长度3
// 现有3个学生的分数: 100.0, 95.5, 87.5 用什么容器装? 怎么写?
double[] arr = new double[]{100.0, 95.5, 87.5};
// 说出答案
int[] array = {10, 20, 30}; // 长度为3
// 索引为? 0 1 2
System.out.println(array[0]); // 输出?10
int num = array[1];
System.out.println(num); // 输出?20
// 直接打印数组名, 输出数组的地址值
System.out.println(array); // [I@75412c2f 数组的内存地址的哈希值
/*
需求: 定义一个长度为3的int数组, 获取所有元素打印出来
*/
public class Test {
public static void main(String[] args) {
// 动态初始化定义数组
int[] arr = new int[3];
// 通过索引获取元素值: 数组名[索引]
System.out.println(arr[0]); // 0
System.out.println(arr[1]); // 0
System.out.println(arr[2]); // 0
}
}
/*
需求:
使用动态初始化创建元素为int, 长度为3的数组arr1,
打印数组中所有的元素值,
然后将所有元素赋值为6,
再次获取所有元素打印
*/
public class Test {
public static void main(String[] args) {
// 使用动态初始化创建元素为int, 长度为3的数组arr1
int[] arr1 = new int[3];
// 打印数组中所有的元素值
System.out.println(arr1[0]); // 0
System.out.println(arr1[1]); // 0
System.out.println(arr1[2]); // 0
// 然后将所有元素赋值为6
arr1[0] = 6;
arr1[1] = 6;
arr1[2] = 6;
// 再次获取所有元素打印
System.out.println(arr1[0]); // 6
System.out.println(arr1[1]); // 6
System.out.println(arr1[2]); // 6
}
}
public class Demo01ArrayOne {
public static void main(String[] args) {
int[] array = new int[3]; //
System.out.println(array); //
System.out.println(array[0]); //
System.out.println(array[1]); //
System.out.println(array[2]); //
System.out.println("==============");
// 改变数组当中元素的内容
array[1] = 10;
array[2] = 20;
System.out.println(array); //
System.out.println(array[0]); //
System.out.println(array[1]); //
System.out.println(array[2]); //
}
}
public class Demo02ArrayTwo {
public static void main(String[] args) {
// 创建第一个数组
int[] arrayA = new int[3];
System.out.println(arrayA); //
System.out.println(arrayA[0]); //
System.out.println(arrayA[1]); //
System.out.println(arrayA[2]); //
System.out.println("==============");
arrayA[1] = 10;
arrayA[2] = 20;
System.out.println(arrayA); //
System.out.println(arrayA[0]); //
System.out.println(arrayA[1]); //
System.out.println(arrayA[2]); //
System.out.println("==============");
// 创建第二个数组
int[] arrayB = new int[3];
System.out.println(arrayB); //
System.out.println(arrayB[0]); //
System.out.println(arrayB[1]); //
System.out.println(arrayB[2]); //
System.out.println("==============");
arrayB[1] = 100;
arrayB[2] = 200;
System.out.println(arrayB); //
System.out.println(arrayB[0]); //
System.out.println(arrayB[1]); //
System.out.println(arrayB[2]); //
}
}
public class Demo03ArraySame {
public static void main(String[] args) {
// 创建一个数组
int[] arrayA = new int[3];
System.out.println(arrayA); //
System.out.println(arrayA[0]); //
System.out.println(arrayA[1]); //
System.out.println(arrayA[2]); //
System.out.println("==============");
arrayA[1] = 10;
arrayA[2] = 20;
System.out.println(arrayA); //
System.out.println(arrayA[0]); //
System.out.println(arrayA[1]); //
System.out.println(arrayA[2]); //
System.out.println("==============");
// 将arrayA数组的地址值,赋值给arrayB数组
int[] arrayB = arrayA; //
System.out.println(arrayB); //
System.out.println(arrayB[0]); //
System.out.println(arrayB[1]); //
System.out.println(arrayB[2]); //
System.out.println("==============");
arrayB[1] = 100;
arrayB[2] = 200;
System.out.println(arrayB); //
System.out.println(arrayB[0]); //
System.out.println(arrayB[1]); //
System.out.println(arrayB[2]); //
}
}
// 数组变量值为null
int[] arr = null;
System.out.println(arr[0]); // NullPointerException
arr[0] = 10; // NullPointerException
// 解决方式:
if (arr != null) {
System.out.println(arr[0]);
arr[0] = 10;
}
int[] arr = new int[5];
int a = arr.length;
System.out.println(a); // 长度是?
// new int[5]索引为: 0 1 2 3 4, 最大索引为4, 即长度-1
/*
需求: 定义int数组, 元素为1,2,3,4,5. 使用for循环遍历并打印元素
*/
public class Test {
public static void main(String[] args) {
// 定义数组, 知道元素, 所以使用静态初始化
int[] arr = {1,2,3,4,5};
// for循环遍历 数组名.fori
for (int i = 0; i < arr.length; i++) {
System.out.println(arr);
}
}
}
int[] arr = {5, 15, 30, 20, 10000};
// 定义变量保存最大值, 先用第一个元素作为参照物
int max = arr[0];
// 遍历获取其他元素比较
for (int i = 1; i < arr.length; i++) {
// 取出每个元素, 与最大值比较
if (arr > max) {
// 如果取出的元素比当前最大值更大, 则将其存入max变量
max = arr;
}
}
// for循环结束后, max中保存的就是最大值
System.our.println(max); // 10000
int[] arr = {5, 15, 30, 20, 10000};
// 定义变量保存最小值, 先用第一个元素作为参照物
int min = arr[0];
// 遍历获取其他元素比较
for (int i = 1; i < arr.length; i++) {
// 取出每个元素, 与最小值比较
if (arr < min) {
// 如果取出的元素比当前最小值更小, 则将其存入min变量
min = arr;
}
}
// for循环结束后, min中保存的就是最大值
System.our.println(min); // 5
/*
需求: 定义数组{5, 15, 30, 20, 10000}, 分别求数组中的最大值和最小值
*/
public class Test {
public static void main(String[] args) {
int[] arr = {5, 15, 30, 20, 10000};
// 获取最大值
int max = arr[0];
// 遍历数组, 获取其他元素进行比较
for (int i = 1; i < arr.length; i++) {
// 获取一个元素, 与当前max进行比较
if (arr > max) {
// 如果当前元素比max还要大, 则将当前值存入max作为最大值
max = arr;
}
}
// for循环结束后, max中保存的就是最大值
System.out.println("最大值:" + max); // 10000
// 获取最小值
int min = arr[0];
// 遍历数组, 获取其他元素进行比较
for (int i = 1; i < arr.length; i++) {
// 获取一个元素, 与当前min进行比较
if (arr < min) {
// 如果当前元素比min还要小, 则将当前值存入min作为最小值
min = arr;
}
}
// for循环结束后, min中保存的就是最小值
System.out.println("最小值:" + min); // 5
}
}
int[] arr = {10, 20, 30, 40, 50};
// 遍历数组, 定义最小索引和最大索引
for (int min = 0, max = arr.length - 1; min < max; min++, max--) {
// 定义第三个变量用于交换元素值
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
/*
需求: 定义数组{10, 20, 30, 40, 50}, 将元素反转
*/
public class Test {
public static void main(String[] args) {
// 定义数组
int[] arr = {10, 20, 30, 40, 50};
// 反转数组
for (int min = 0, max = arr.length - 1; min < max; min++, max--) {
// 首尾元素交换
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
// 打印交换完的数组
for (int i = 0; i < arr.length; i++) {
System.out.println(arr);
}
}
}
//结论: 数组作为参数传递, 实际传递的是数组对象的地址值
public class Demo01ArrayParam {
public static void main(String[] args) {
int[] array = { 10, 20, 30, 40, 50 }; // 0x666
printArray(array); // 0x666
}
// 打印数组元素
public static void printArray(int[] array) { // 相当于 int[] array = 0x666
for (int i = 0; i < array.length; i++) {
System.out.println(array);
}
}
}
//结论: 数组作为返回值, 实际返回的是数组对象的地址值
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10, 20, 30); // 返回的是地址值 0x666
System.out.println("总和:" + result[0]);
System.out.println("平均数:" + result[1]);
}
public static int[] calculate(int a, int b, int c) {
int sum = a + b + c; // 总和
int avg = sum / 3; // 平均数
// 需要一个数组,也就是一个塑料兜,数组可以保存多个结果
int[] array = { sum, avg }; // 0x666
return array; // 0x666
}
}
xiekai_sjz 发表于 2018-8-28 14:35
day05 数组数组的定义和访问数组的概念数组: 是一种容器, 可以同时存放同一种类型的多个数据值
数组的特点 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |