网站头图设计,WordPress让中文名图片显示,深圳seo优化公司,建设部网站上怎样查询企业业绩数组是数据类型一致的变量的集合。 一个#xff1a;变量 一堆#xff08;多个#xff09;#xff1a;数组 数组语法#xff1a; 1#xff09;数组变量#xff08;引用类型变量#xff09; 数组变量通过引用地址引用了数组#xff08;数组对象#xff09; 2#xff0… 数组是数据类型一致的变量的集合。 一个变量 一堆多个数组 数组语法 1数组变量引用类型变量 数组变量通过引用地址引用了数组数组对象 2数组数组对象 数组就是个体是一个整体 数组元素的个数叫数组的长度length 数组元素的范围0 1 2…length-1 3数组元素 是数组中的每个变量使用[下标]访问 定义数组变量创建数组数组对象访问数组元素 1 public class Test {2 3 public static void main(String[] args) {4 //1)定义数组变量 5 int[] ary;//声明int[] 数组类型的变量ary6 int ary1;//也是声明数组变量但很少使用7 //System.out.println(ary[0]);//编译错误ary没有初始化8 ary null;//null 空没有9 //System.out.println(ary[0]);//运行异常空指针异常
10
11 //空指针异常发生原因引用类型的变量值是null不引用任何对象
12 //当利用引用变量访问属性数组元素和方法时出现空指针异常
13
14 //2创建数组创建 数组对象
15 ary new int[3];//数组对象有3个元素
16 //创建数组对象new int[3]将对象的引用赋值给ary变量
17 //ary就引用了数组对象这个对象有3个元素
18 System.out.println(ary[0]);//0
19 //System.out.println(ary[3]);//运行异常数组下标越界
20 //java数组元素是自动初始化的初始值为零值各种零值如下
21 //0 0.0 \u0000 null false
22 double[] d new double[3];
23 System.out.println(d[0] d[0]);//d[0] 0.0
24 char[] c new char[3];
25 System.out.println(c[0] c[0]);//c[0] 看不出显示什么
26 System.out.println((int)\u0000);//\u0000的编码值是0
27 String[] s new String[3];
28 System.out.println(s[0] s[0]);//s[0] null字符串数组初始化是null
29 boolean[] b new boolean[3];
30 System.out.println(b[0] b[0]);//b[0] false
31
32 //java中数组创建的3种方式
33 //new 类型[长度]
34 //类型是任何类型基本类型、类类型StringInteger
35 //长度变量或常量值0~Integer.MAX_VALUE
36
37 //new 类型[]{元素0元素1元素2}
38 //直接给出元素元素直接初始化元素的个数就是长度
39 ary new int[]{2,3};
40 System.out.println(ary[0]);//2
41
42 //静态初始化
43 //类型[] 变量{元素0元素1元素2}
44 int[] ary4 {2,3,4};
45 //静态初始化“只能用于”声明变量同时初始化
46 //ary {4,5,6}//编译错误
47 ary new int[]{4,5,6};//没有问题
48
49 //new int[length]适合创建不知道具体的元素数量很多
50 //new int[]{2,3,4}适合已经知道具体元素元素比较少
51 //{4,5,6}只适合知道元素并只能使用在声明变量时直接初始化
52
53 //3)访问数组元素
54 //数组元素一旦创建数组的长度是不可以改变的
55 //使用.length属性可以获取数组的长度
56 //数组不能越界访问会出现运行异常
57 ary new int[]{5,6,7};
58 System.out.println(ary.length);
59 ary[1];
60 System.out.println(ary[1]);//7
61 System.out.println(ary[-1]);//运行异常下标越界
62 //迭代数组元素迭代数组也称为遍历数组就是逐一处理元素
63 for(int i0;iary.length;i){
64 System.out.println(ary[i]);
65 }
66 }
67 } 使用数组非常有用的API方法 使用API方法API方法封装了常用算法功能使用这些功能简化开发过程提高开发效率 Arrays.toString用于字符串表示数组元素 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 String[] str new String[]{A,b,c,d};9 System.out.println(Arrays.toString(str));//打印出数组元素[A, b, c, d]
10 } Arrays.equals用于比较两个数组内容是否相等便捷 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 char[] a1 new char[]{a,b,c};9 char[] a2 new char[]{a,b,c};
10 char[] a3 new char[]{a,c,d};
11 System.out.println(Arrays.equals(a1, a2));//true
12 System.out.println(Arrays.equals(a1, a3));//false
13 }
14 } Arrays.sort用于实现数组排序 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 char[] a new char[]{a,d,f,c,b,g};9 System.out.println(Arrays.toString(a));//[a, d, f, c, b, g]
10 Arrays.sort(a);
11 System.out.println(Arrays.toString(a));//[a, b, c, d, f, g]
12 }
13 } Arrays.binarySearch:用于实现有序数组 的二分法查找 只能查找排序后的数组不然得到的结果不稳定 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 char[] a new char[]{a,d,f,c,b,g};9 int index Arrays.binarySearch(a, c);
10 System.out.println(index);//-2负数找不到
11 Arrays.sort(a);
12 index Arrays.binarySearch(a, c);
13 System.out.println(index);//在排序后数组的第2位
14 }
15 } 数组的复制 最常见用途数组的扩容算法 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 int[] ary1 {4,5,6};9 int[] ary2 ary1;//数组变量的赋值但数组还是同一个。ary1 ary2互相影响
10 ary2[1];
11 System.out.println(Arrays.toString(ary1));//[4, 6, 6]
12 System.out.println(Arrays.toString(ary1));//[4, 6, 6]
13 //数组的复制1使用for循环实现 2使用API
14 //将ary1引用数组进行复制
15 int[] ary3 new int[ary1.length];
16 for(int i0;iary1.length;i){
17 ary3[i] ary1[i];
18 }
19 ary3[1];
20 System.out.println(Arrays.toString(ary3));//[4, 7, 6]
21 System.out.println(Arrays.toString(ary1));//[4, 6, 6]
22 //使用API System.arraycopy()实现复制比较早期用C写的性能好
23 int[] ary4 new int[ary1.length];
24 //参数源数组源数组位置目标数组目标数组位置个数
25 System.arraycopy(ary1, 0, ary4, 0, ary1.length);
26 System.out.println(Arrays.toString(ary1));
27 System.out.println(Arrays.toString(ary4));
28 //使用Arrays.copyOf()方法JDK1.5开始出现底层就是arraycopy
29 int[] ary5 Arrays.copyOf(ary1, ary1.length);
30 System.out.println(Arrays.toString(ary1));
31 System.out.println(Arrays.toString(ary5));
32
33 }
34 } 数组的扩容 与 追加 1) 数组创建以后长度不可改变2) 利用更换数组的方式实现扩容算法 3) 更换数组时候利用复制方法保持原数组内容。 数组扩容是Java API 实现的常用算法 1 package TestCode;2 3 import java.util.Arrays;4 5 public class Test {6 7 public static void main(String[] args) {8 // 扩容原理更换新数组9 String[] playlist { song1, song2 };
10 System.out.println(Arrays.toString(playlist));
11 playlist new String[] { song1, song2, song3 };
12 System.out.println(Arrays.toString(playlist));
13 // 扩容为playlist扩容并追加 新 歌曲 “song4”
14 playlist Arrays.copyOf(playlist, playlist.length 1);
15 playlist[playlist.length - 1] song4;
16 System.out.println(Arrays.toString(playlist));
17 // 1) 复制新数组增加容量
18 // 2) 替换原数组
19 String[] newOne new String[playlist.length 1];
20 System.arraycopy(playlist, 0, newOne, 0, playlist.length);
21 playlist newOne;
22 System.out.println(Arrays.toString(playlist));
23 }
24 } 转载于:https://www.cnblogs.com/grape/p/3244159.html