目录
二维数组
声明赋值和使用
数组的声明:
int[][] arr;
String [][] arr2;
不推荐 double d[][]; float[] f[] ;
初始化 :
静态
arr = new int[][]{{1,2,3,},{4,5,6},{7,8,9}};
动态:
int[][] arr = new int[3][2];
int[][] arr = new int[3][]; // 表示 二维数组的长度为3 其中每一个数据 还没有 初始化
二维数组的 遍历
2层 for 循环
public class multiArray {
public static void main(String[] args) {
int[][] arr = new int[3][];
arr[0]= new int [] {5,6,7};
arr[1]= new int [] {8,3,2};
arr[2]= new int [] {1,4,9};
//二维数组遍历用两层for循环
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.print("arr["+ i + "] [" + j + "] = " + arr[i][j] + "\t");
}
System.out.println();
}
//方式二 foreach循环遍历,也需要 两层嵌套
// for (int[] i : arr) {
// for (int j : i) {
// System.out.print(j + " ");
// }
// System.out.println( );
// }
}
}
Arrays工具类
排序:Arrays.sort(arr);
/*
* java 数组练习
*/
@Test
public void test3(){
int[] ints1 = {56,569,95,65,65,6,5,65,6};
Arrays.sort(ints1);
for (int i = 0; i < ints1.length; i++) {
System.out.print(ints1[i] + " ");
}
}
二分查找法:
int index = Arrays.binorySearch(10);
util类下的二分查找法,返回的是目标元素出现的索引处
index 返回 负数表示没找到。
复制数组
int[] arr2 = Arrays.copyOf(arr,10);
返[[回新数组,长度 10;
如果就数组长度小于目标长度10,就会自动扩容,长度 = 10,没有赋值的元素 用默认值 赋值。
如果就数组长度大于目标长度10,就会自动截断,长度 = 10,只取数组的前10个元素。
数组 --> 字符串
把 数组 转变 为 字符串 String str = Arrays.toString(arr);
/*
java.util.Arrays.(工具类,方法测试)
*/
@Test
public void test2 (){
int[] ints = {56,569,95,65,65,6,5,65,6,2,62,95,9,589,78,7,84,98,465,4,897,89,48,4894};
//数组排序
Arrays.sort(ints);
for (int i = 0; i < ints.length; i++) {
System.out.print (ints[i] + " ");
}
System.out.println();
//返回 int index = Arrays.binarySearch(10);
//二分法查找元素
int index = Arrays.binarySearch(ints, 89);
System.out.println(index); //返回的是索引的 位置
//复制 产生新的 长度为10的 数组
int[] ints2 = Arrays.copyOf(ints,10);
for (int i : ints2 ) {
System.out.print (i + " ");
}
System.out.println();
//数组的遍历(增强 for循环遍历)
int[] ints3 = Arrays.copyOf(ints2, 15);
for (int i : ints3 ) {
System.out.print (i + " ");
}
System.out.println();
//数组 转 字符串 Arrays.toString()方法 返回的是 字符串 (不是遍历数组)
String str = Arrays.toString(ints);
System.out.println(str);
}