JAVA数组的基本方法

数组的基本方法

数组可以存放多个数据,多个数据类型要统一
数组格式:
格式一:常用写法
数组类型[] 数组名称 = new 数据类型[数组长度];
格式二:蛋疼写法
数组类型[] 数组名称;
数组名称 = new 数组类型[数组长度];
静态初始化数组格式:
格式一:常用写法
数组类型[] 数组名称 = new 数据类型[]{数值,数值,数值};
格式二:蛋疼写法
数组类型[] 数组名称;
数组名称 = new 数组类型[]{数值,数值,数值};
快速初始化数组格式(静态初始化数组的省略写法):
数组类型[] 数组名称 = {数值,数值,数值,数值,数值,数值,数值};
当你打印数组对象时返回的对象意思如下:
[代表当前数据是数组 + 数据类型 + @数字代表的是地址值(的哈希值)
数组动态初始化的时候默认会被赋予一个默认值
整数数组默认赋予0
浮点数组默认赋予0.0
字符串或其他引用数组类型默认赋予null
布尔数组默认赋予false
常见报错信息java.lang.ArrayIndexOutOfBoundsException
表示数组越界也就是超出了范围
来看下面的实例:
 1 import java.util.Arrays;
 2 
 3 public class ListFunc {
 4     public static void main(String[] args){
 5         //动态数组初始化
 6         int[] array1 = new int[3];
 7         float[] array2 = new float[3];
 8         String[] array3;
 9         array3 = new String[3];
10         boolean[] array4 = new boolean[1];
11         System.out.println("array1="+array1[0]+" "+array1[1]+" "+array1[2]);
12         System.out.println("array2="+array2[0]+" "+array2[1]+" "+array2[2]);
13         System.out.println("array3="+array3[0]+" "+array3[1]+" "+array3[2]);
14         System.out.println("array4="+array4[0]);
15 
16         //静态数组初始化
17         int[] list1 = new int[]{1,2,3};
18         float[] list2 = new float[]{1.0f,2.0f,3.0f};
19         String[] list3;
20         list3 = new String[]{"abc","bcd","def"};
21         System.out.println("list1="+list1[0]+" "+list1[1]+" "+list1[2]);
22         System.out.println("list2="+list2[0]+" "+list2[1]+" "+list2[2]);
23         System.out.println("list3="+list3[0]+" "+list3[1]+" "+list3[2]);
24 
25         //快速数组初始化并统计长度
26         int[] lists = {1,2,3,4,5,7,8,8,9,9,0,0,123,21,32,43,534,20};
27         System.out.println("lists映射地址="+lists);
28         System.out.println("lists的长度="+lists.length);
29         int[] lists2 = lists.clone();
30 
31         //对已有的数据对象克隆并生成了新的地址空间
32         System.out.println("clone映射地址="+lists.clone());
33         System.out.println("克隆数组方法="+Arrays.toString(lists2));
34         System.out.println("hashCode="+lists.hashCode());   //生成对应的哈希值
35 
36 
37         //Arrays.toString方法直接可以转换数组快速变成可阅读模式
38         // 使用此方法前需要import java.util.Arrays;
39         int[] array5 = {1,2,3,4,5,6};
40         String str = Arrays.toString(array5);
41         System.out.println("array5="+str);
42 
43 
44         String[] list5 = {"a","b","c"};
45         String[] list6 = {"a","b","c"};
46         //判断两个数组是否相等/相同
47         System.out.println("Arrays-equals="+Arrays.equals(list5,list6));
48         //生成哈希值
49         System.out.println("Arrays-hashCode="+Arrays.hashCode(list6));
50         //搜索数组的对象的下标位置(字符串不能用)
51         System.out.println("Arrays-binarySearch="+Arrays.binarySearch(array5,2));
52         //从数组的首位截取对应长度生成新数组
53         System.out.println("Arrays-copyOf="+Arrays.toString(Arrays.copyOf(array5,2)));
54         //从数组指定范围截取生成新数组
55         System.out.println("Arrays-copyOfRange="+Arrays.toString(Arrays.copyOfRange(array5,4,6)));
56 
57         int[] array6 = {6,7,8,5,4,3,2,1};
58         int[] array7 = array6.clone();
59         //对数组从小到大排序
60         Arrays.sort(array6);
61         System.out.println("Arrays-sort="+Arrays.toString(array6));
62         //同上方法一样也是排序
63         Arrays.parallelSort(array7);
64         System.out.println("Arrays-parallelSort="+Arrays.toString(array7));
65         //对数组全部填充定义的值
66         Arrays.fill(array6,10);
67         System.out.println("Arrays-fill="+Arrays.toString(array6));
68 
69         //对下标的数利用生成器生成对应新的序列
70         int[] array9 = new int[10];
71         Arrays.setAll(array9,x->x*2);
72         System.out.println("Arrays-setAll="+Arrays.toString(array9));
73         //可使用表达式循环输出
74         int[] array8 = {8,88,888};
75         Arrays.stream(array8).forEach(i->System.out.println("stream-forEach="+i));
76         //判断列表是否为空
77         System.out.println("Arrays-asList-isEmpty="+Arrays.asList(list5).isEmpty());
78     }
79 }

对应输出结果如下图:

 
原文地址:https://www.cnblogs.com/cookie1026/p/9683418.html