二维数组 和 Arrays工具类

这篇博客详细介绍了Java中二维数组的声明、初始化、遍历以及动态分配。同时,讲解了Arrays工具类的使用,包括排序、二分查找和数组复制。此外,还讨论了如何将数组转换为字符串。示例代码展示了如何在实际编程中应用这些概念。
摘要由CSDN通过智能技术生成

​​​​​​​目录

二维数组

数组的声明:

初始化 :

静态

动态:

二维数组的 遍历

Arrays工具类

排序:Arrays.sort(arr);

二分查找法:        

复制数组

数组 --> 字符串

二维数组

声明赋值和使用

数组的声明:

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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值