java数组选择排序-数组的定义
## 概述数组是在程序设计中java数组选择排序,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式,这些按序排列的同类数据元素的集合称为数组。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。## 一维数组### 动态初始化```javaint[] array = new int[3];// 两种方式都可以// int array[] = new int[3];array[0] = 1;array[1] = 2;array[2] = 3;System.out.println(array[0]);```### 静态初始化```javaint[] array = { 1, 2, 3, 4 };int[] array1 = new int[] { 1, 2, 3, 4 };System.out.println(array[2]);System.out.println(array1[2]);```### 默认初始化```javaint[] array = new int[4];System.out.println(array[2]);```### 获取数组的长度```javaint[] array = new int[10];int length = array.length;System.out.println("数组array的长度是:" + length);```## 二维数组### 二维数组初始化同一维数组一样java数组选择排序,共有4总不同形式的定义方法:```javaint[][] 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 } };```### 不定长二维数组```javaint[][] array = new int[3][];array[0] = new int[1];array[1] = new int[2];array[2] = new int[3];```### 获取二维数组的长度```javaint length1 = array.length;int length2 = array[0].length;// 获取二维数组的第一维长度(3)System.out.println(length1);// 获取二维数组的第一维的第一个数组长度(1)System.out.println(length2);```## 数组遍历### 传统方式遍历```javaint[] array = new int[] { 1, 2, 3 };for (int i = 0; i < array.length; i++) {System.out.println("array[" + i + "] = " + array[i]);}```### 增强for循环方式遍历```javaint[] array = new int[] { 1, 2, 3 };for (int i : array) {System.out.println(i);}```## 数组排序```javaint[] array = { 3, 2, 1, 4, 5 };Arrays.sort(array);System.out.println(Arrays.toString(array));```常用的排序方法有冒泡排序、快速排序、选择排序、插入排序、希尔(Shell)排序、堆排序。
可参考[Java 数组排序]()## 数组异常### 数组下标越界异常在java中,数组下标从0开始,我们定义了一个长度为3的数组,想要从中取出第四位,便会抛出java.lang.ArrayIndexOutOfBoundsException。```javaint[] array = new int[] { 1, 2, 3 };System.out.println(array[3]);```## 实用API### 输出数组```javaint[] array = { 1, 2, 3 };System.out.println(Arrays.toString(array));```### 数组转List```javaString[] array = { "a", "b", "c", "d", "e" };List list = new ArrayList(Arrays.asList(array));System.out.println(list);```### 数组转Set```javaString[] array = { "a", "b", "c", "d", "e" };Set set = new HashSet(Arrays.asList(array));System.out.println(set);```### List转数组```javaList list = new ArrayList();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);```### 数组中是否包含某个值```javaString[] array = { "a", "b", "c", "d", "e" };boolean b = Arrays.asList(array).contains("a");System.out.println(b);```### ### 数组复制```javaint array[] = new int[] { 1, 2, 3, 4 };int array1[] = new int[array.length];System.arraycopy(array, 0, array1, 0, array.length);```### 数组合并```javaint[] 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数组转字符串(使用指定字符拼接)```javaString[] array = { "a", "b", "c" };String str = org.apache.commons.lang.StringUtils.join(array, ", ");System.out.println(str);```### 数组逆序```javaint[] array = { 1, 2, 3, 4, 5 };org.apache.commons.lang.ArrayUtils.reverse(array);System.out.println(Arrays.toString(array));```### 数组元素移除```javaint[] array = { 1, 2, 3, 4, 5 };int[] removed = org.apache.commons.lang.ArrayUtils.removeElement(array, 3);System.out.println(Arrays.toString(removed));```