Java 数组详解 - 用法、遍历、排序、实用API

xiaoxiao2021-02-28  124

概要:

数组,就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。

组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。

| |目录

1初始化数组·动态初始化·静态初始化·默认初始化 2获取数组的长度 3二维数组·二维数组初始化·不定长二维数组·获取二维数组的长度 4数组遍历·传统方式遍历·增强for循环方式遍历 5数组排序 6数组的复制、插入和合并 7实用API·输出数组·数组转List·数组转Set·List转数组·数组中是否包含某个值·数组合并·String数组转字符串(使用指定字符拼接)·数组逆序·数组元素移除 8数组异常·1. 数组下标越界异常,java.lang.ArrayIndexOutOfBoundsException

1初始化数组

动态初始化

Java |  复制 1 2 3 4 5 6 7 8 int [] array =  new  int [ 3 ]; // 两种方式都可以 // int array[] = new int[3]; array[ 0 ] =  1 ; array[ 1 ] =  2 ; array[ 2 ] =  3 ;   System.out.println(array[ 0 ]);

静态初始化

Java |  复制 1 2 3 4 5 int [] array = {  1 ,  2 ,  3 ,  4  }; int [] array1 =  new  int [] {  1 ,  2 ,  3 ,  4  };   System.out.println(array[ 2 ]); System.out.println(array1[ 2 ]);

默认初始化

Java |  复制 1 2 int [] array =  new  int [ 4 ]; System.out.println(array[ 2 ]);

2获取数组的长度

Java |  复制 1 2 3 int [] array =  new  int [ 10 ]; int  length = array.length; System.out.println( "数组array的长度是:"  + length);

3二维数组

二维数组初始化

同一维数组一样,共有4总不同形式的定义方法:

Java |  复制 1 2 3 4 int [][] array1 =  new  int [ 10 ][ 10 ]; int  array2[][] =  new  int [ 10 ][ 10 ]; int  array3[][] = { {  1 ,  1 ,  1  }, {  2 ,  2 ,  2  } }; int  array4[][] =  new  int [][] { {  1 ,  1 ,  1  }, {  2 ,  2 ,  2  } };

不定长二维数组

Java |  复制 1 2 3 4 int [][] array =  new  int [ 3 ][]; array[ 0 ] =  new  int [ 1 ]; array[ 1 ] =  new  int [ 2 ]; array[ 2 ] =  new  int [ 3 ];

获取二维数组的长度

Java |  复制 1 2 3 4 5 6 int  length1 = array.length; int  length2 = array[ 0 ].length; // 获取二维数组的第一维长度(3) System.out.println(length1); // 获取二维数组的第一维的第一个数组长度(1) System.out.println(length2);

4数组遍历

传统方式遍历

Java |  复制 1 2 3 4 int [] array =  new  int [] {  1 ,  2 ,  3  }; for  ( int  i =  0 ; i < array.length; i++) {      System.out.println( "array["  + i +  "] = "  + array[i]); }

增强for循环方式遍历

Java |  复制 1 2 3 4 int [] array =  new  int [] {  1 ,  2 ,  3  }; for  ( int  i : array) {      System.out.println(i); }

5数组排序

Java |  复制 1 2 3 int [] array = {  3 ,  2 ,  1 ,  4 ,  5  }; Arrays.sort(array); System.out.println(Arrays.toString(array));

另:常用的排序方法有冒泡排序、快速排序、选择排序、插入排序、希尔(Shell)排序、堆排序。可参考Java 数组排序

6数组的复制、插入和合并

参考:Java 一维数组复制、插入和合并

7实用API

输出数组

Java |  复制 1 2 int [] array = {  1 ,  2 ,  3  }; System.out.println(Arrays.toString(array));

数组转List

Java |  复制 1 2 3 String[] array = {  "a" ,  "b" ,  "c" ,  "d" ,  "e"  }; List<String> list =  new  ArrayList<String>(Arrays.asList(array)); System.out.println(list);

数组转Set

Java |  复制 1 2 3 String[] array = {  "a" ,  "b" ,  "c" ,  "d" ,  "e"  }; Set<String> set =  new  HashSet<String>(Arrays.asList(array)); System.out.println(set);

List转数组

Java |  复制 1 2 3 4 5 6 7 8 List<String> list =  new  ArrayList<String>(); list.add( "a" ); list.add( "b" ); list.add( "c" ); String[] array =  new  String[list.size()]; list.toArray(array); for  (String s : array)      System.out.println(s);

数组中是否包含某个值

Java |  复制 1 2 3 String[] array = {  "a" ,  "b" ,  "c" ,  "d" ,  "e"  }; boolean  b = Arrays.asList(array).contains( "a" ); System.out.println(b);

数组合并

Java |  复制 1 2 3 4 int [] array1 = {  1 ,  2 ,  3 ,  4 ,  5  }; int [] array2 = {  6 ,  7 ,  8 ,  9 ,  10  }; int [] array = org.apache.commons.lang.ArrayUtils.addAll(array1, array2); System.out.println(Arrays.toString(array));

String数组转字符串(使用指定字符拼接)

Java |  复制 1 2 3 String[] array = {  "a" ,  "b" ,  "c"  }; String str = org.apache.commons.lang.StringUtils.join(array,  ", " ); System.out.println(str);

数组逆序

Java |  复制 1 2 3 int [] array = {  1 ,  2 ,  3 ,  4 ,  5  }; org.apache.commons.lang.ArrayUtils.reverse(array); System.out.println(Arrays.toString(array));

数组元素移除

Java |  复制 1 2 3 int [] array = {  1 ,  2 ,  3 ,  4 ,  5  }; int [] removed = org.apache.commons.lang.ArrayUtils.removeElement(array,  3 ); System.out.println(Arrays.toString(removed));

8数组异常

1. 数组下标越界异常,java.lang.ArrayIndexOutOfBoundsException

在java中,数组下标从0开始,我们定义了一个长度为3的数组,想要从中取出第四位,便会抛出此异常。

Java |  复制 1 2 int [] array =  new  int [] {  1 ,  2 ,  3  }; System.out.println(array[ 3 ]);
转载请注明原文地址: https://www.6miu.com/read-35115.html

最新回复(0)