美文网首页
java数组[]使用

java数组[]使用

作者: 喏喏2021 | 来源:发表于2021-11-30 16:19 被阅读0次

1. 定义

  • 概念: 一组相同对象的集合
  • 新建及初始化
1) 一维数组
int[] a   = new int[5];  //定义5个整型变量
int[] a1 = new int[]{8,22,15,19,33}; //定义5个变量,并赋值   
int[] a2 = {8,22,15,19,33}; //定义5个变量赋值的简写
2) 二维数组
int[][] b = new int[5][];  //定义了一维的长度
int[][] b1 = new int[5][5]; //定义一维和二维的长度
int[][] b2 = new int[][] { { 1, 2 } }; //初始一维的数据
int[][] b3 = new int[][] { { 1, 2 }, { 3, 4 ,5} }; //初始长度为2的二维数据
3) 多维数组
int[][][] c = new int[2][3][4]; //一个三维数组

2. 取值&赋值

  • 基本原则:一般情况下可以取到某个位置的值,那就可以给这个位置赋值。
  • 常用赋值
//一维数组赋值
int[] a   = new int[5];
a[2] = 5; //注意这里的下标不能越界
//二维数组赋值
int[][] b = new int[5][];
b[0] = new int[3]; //这里我们需要把二维的数组先定义出来
b[0][1] = 3;
b1[2][2] = 5; //这里已经定义出来的,就可以直接赋值了
//多维数组赋值法类似
c[0][0][0] = 8;
  • 工具方法赋值
// 1.用已有数组生成新数组
int[] bNew = Arrays.copyOf(a1, 4);
System.out.println(Arrays.toString(bNew));
//[8, 15, 19, 22]

// 2. 复制指定范围的数据,生成新数组
int[] bNew1 = Arrays.copyOfRange(a1, 2, 3);
System.out.println(Arrays.toString(bNew1));
//[19]

// 3. 将数组更新为同一个值
Arrays.fill(bNew, 20);
System.out.println(Arrays.toString(bNew));
//[20, 20, 20, 20]

//4. 指定范围更新为同一个值
Arrays.fill(bNew, 2,4, 20);
System.out.println(Arrays.toString(bNew));
//[8, 15, 20, 20]

3. 遍历

//一维数组
int[] a1 = new int[]{8,22,15,19,33};
for(int i=0;i<a1.length;i++) {
    System.out.print(a1[i] + " ");
}
System.out.println();

//二维数组
int[][] b3 = new int[][] { { 1, 2 }, { 3, 4 ,5} };
for(int i=0;i<b3.length;i++) {
    for(int j=0;j<b3[i].length;j++) {
        System.out.print(b3[i][j] + " ");
    }
    System.out.println(); //换行显示
}
//多维数组,就分多层嵌套循环就可以

//简单输出数组
System.out.println(Arrays.toString(a1));
//[8, 22, 15, 19, 33]

4. 排序

为方便后面的数据搜索,我们需要对数组先进行排序。

  • 原始数据
int a1 = new int[] { 8, 22, 15, 19, 33};
  • 正常排序
Arrays.sort(a1); //排序
System.out.println(Arrays.toString(a1)); //排序后输出
//[8, 15, 19, 22, 33]
  • 指定位置排序
a1 = new int[] { 8, 22, 15, 19, 33};
Arrays.sort(a1,1,3); //注意下标,并不包括结尾的下标3位置
System.out.println(Arrays.toString(a1));
//[8, 15, 22, 19, 33]
  • 并行排序
a1 = new int[] { 8, 22, 15, 19, 33};
Arrays.parallelSort(a1,1,5);
System.out.println(Arrays.toString(a1));
//[8, 15, 19, 22, 33]

注:一般经验,数组大小在10多万的情况下达到平衡点,
在这个数量以下sort排序快一点,更多数量的情况下parallelSort更快一点,
具体的平衡点,会随着机器配置变化而变化。

5. 查找

  • 全局搜索
int a1 = new int[] { 8, 22, 15, 19, 33};
Arrays.sort(a1);
int index = Arrays.binarySearch(a1, 15);
System.out.println(index);
//1
  • 按位置搜索
index = Arrays.binarySearch(a1, 1, 3, 19); //注意,这里也不包括下标为3的位置
System.out.println(index);
//2

5. 比较

int[] b11 = {1,2,4};
int[] b12 = {1,2,5};
System.out.println(Arrays.equals(b11, b12));
//false

注:这里需要数组长度,和元素都相等才会相等。

相关文章

  • Java实例-数组

    1、Java 实例 – 数组排序及元素查找:使用sort()方法对Java数组进行排序,使用 binarySear...

  • Java知识之数组

    Java数组知识图如下: 数组基本用法 声明数组声明数组语法格式: 初始化数组Java中使用关键字new创建数组对...

  • Java 数组

    Java 实例 - 数组排序及元素查找 以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 ...

  • Kotlin数组

    数组在Kotlin中使用Array类来表示。下面巴拉一下Kotlin数组和Java数组的区别。Java中的数组通常...

  • Java数组常用方法总结

    Java数组 Java中数组用于存储固定大小的同类型元素 用法 工具类Arrays 复制数组最终使用的是Syste...

  • scala 与 java泛型数组

    java 泛型数组初始化 使用这样的方式初始化java的数组会出错,因为java不支持泛型数组。按照我的理解,ja...

  • Java 的小白学习笔记六(数组)

    Java 数组 声明 数组的声明必须在使用之前 /* 首选语法 */dataType[] arrayRefVar;...

  • Java- 一维数组:

    Java- 一维数组: 使用语法 elementType[] arrayRefVar(元素类型[] 数组引用变量)...

  • java数组[]使用

    1. 定义 概念: 一组相同对象的集合 新建及初始化 1) 一维数组 2) 二维数组 3) 多维数组 2....

  • java基础-day06-数组

    数组【重点】 1. 数组 1.1 为什么要使用数组 1.2 生活中数组概念 1.3 Java中定义数组的格式【重点...

网友评论

      本文标题:java数组[]使用

      本文链接:https://www.haomeiwen.com/subject/bydlxrtx.html