美文网首页
重捡Java(三)数组

重捡Java(三)数组

作者: 我很惊讶 | 来源:发表于2020-05-04 22:41 被阅读0次

python在处理数组字典这一类的数据的时候,有两个很强大的功能——“切片和构造器”
但是在java中则更麻烦一些。

声明创建数组

Java的数组是一个固定长度的,包含了相同类型数据的容器。

int values [];  //声明。此时未分配空间
values = new int[6];  //创建,此时分配空间
values = {18,62,68,82,65,9};  //赋值
int values [] = new int[]{18,62,68,82,65,9};  //也可以写成一行

访问数组

数组通过下标访问,第一个数据的下标为0

a[0] = 1; //为数组的第一个数赋值 

可以通过循环遍历处理数组

for (int i = 0; i < a.length; i++)// length获取数组长度的方法
            System.out.println(a[i]);
}

也可以这样遍历

for(int c : a){
   System.out.println(c);// 这样就不用通过下表处理值了
}

数组排序

    public static void main(String[] args) {
        int values[] = new int[] { 18, 62, 68, 82, 65, 9 };

        // 排序
        Arrays.sort(values);
        System.out.println();
        for (int value : values) {
            System.out.print(value + " ");
        }
        // 降序
        int valuesDescp[] = new int[values.length];
        for (int i = 0; i <= values.length - 1; i++) {
            valuesDescp[i] = values[values.length - 1 - i];
            System.out.println("a:"+valuesDescp[i]);
            System.out.println("b:"+values[values.length - 1 - i]);
            
        }
        for (int value : valuesDescp) {
            System.out.print(value + " ");
        }
    }

复制数组

把一个数组的值,复制到另一个数组中

System.arraycopy(src, srcPos, dest, destPos, length)

src: 源数组
srcPos: 从源数组复制数据的起始位置
dest: 目标数组
destPos: 复制到目标数组的起始位置
length: 复制的长度
public class HelloWorld {
    public static void main(String[] args) {
        int a [] = new int[]{18,62,68,82,65,9};
         
        int b[] = new int[3];//分配了长度是3的空间,但是没有赋值
         
        //通过数组赋值把,a数组的前3位赋值到b数组
         
        //方法一: for循环
         
        for (int i = 0; i < b.length; i++) {
            b[i] = a[i];
        }
        
        //方法二: System.arraycopy(src, srcPos, dest, destPos, length)
        //src: 源数组
        //srcPos: 从源数组复制数据的起始位置
        //dest: 目标数组
        //destPos: 复制到目标数组的启始位置
        //length: 复制的长度       
        System.arraycopy(a, 0, b, 0, 3);
         
        //把内容打印出来
        for (int i = 0; i < b.length; i++) {
            System.out.print(b[i] + " ");
        }
 
    }
}

多维数组

就是数组的元素还是数组

int[][] a = new int[][]{
{1,2},
{3,4}
}

也就是

int[0][0] = 1;
int[0][1] = 2;
int[1][0] = 3
int[1][1] = 4;

从最外层开始依次往里套娃
有二维自然也有三维四维五维

int [][][] b = new int[][][]{
{ {1,2},{3.4} }.
{ {5,6},{7,8} }
}

Arrays工具类

Arrays是针对数组的工具类,可以进行 排序,查找,复制填充等功能。
1.复制数组

// copyOfRange(int[] original, int from, int to)
        // 第一个参数表示源数组
        // 第二个参数表示开始位置(取得到)
        // 第三个参数表示结束位置(取不到)
        int[] b = Arrays.copyOfRange(a, 0, 3);

2.转换为字符串

int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
String content = Arrays.toString(a);

3.排序
刚才写了,注意,这个函数不是返回一个返回值,而是直接操作原数组

Arrays.sort(a);

4.搜索
查询元素出现的位置
需要注意的是,使用binarySearch进行查找之前,必须使用sort进行排序
如果数组中有多个相同的元素,查找结果是不确定的

System.out.println("数字 62出现的位置:"+Arrays.binarySearch(a, 62));

5.判断是否相同

System.out.println(Arrays.equals(a, b));

注意,数组是有顺序的,书序不同结果也是 false
6.填充
使用同一个值,填充整个数组

Arrays.fill(a, 5);//用5填充a

更多方法和使用方式可以按ctrl进入util.Arrays类里观看

进入工具类
可以在这个类里查询方法和使用条件

相关文章

  • 重捡Java(三)数组

    python在处理数组字典这一类的数据的时候,有两个很强大的功能——“切片和构造器”但是在java中则更麻烦一些。...

  • HZ数组对象去重

    // 根据数组对象中属性去重 思路:在原数组对象中 直接捡出 不重复的 数组对象, 过程:1.获取不重复的属性数组...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • 重捡Java(十四)接口

    这一部分是前后端分离和实际项目中分工合作的一个重要方法。当我们去定义一个接口的时候,实际上我们是做了一个约定的方法...

  • Java 数组去重

    JAVA中List对象去除重复值,大致分为两种情况,一种是List 、List 这类,直接根据List中的值进行去...

  • 重捡Java(二)数组的两种常用排序

    选择排序 思路:把第一位和其他所有的进行比较,只要比第一位小的,就换到第一个位置来比较完后,第一位就是最小的然后再...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • Java实现数组去重

    思路就是新建一个数组,把原数组的元素赋进去,再去除因此产生的0。

  • Java数组去重问题

    方法一: 使用两个标志位进行标定去重。此方法无需使用任何容器,也不需要另外开辟数组空间,推荐使用,但丢失了数组元素...

  • java 对象数组去重

    java对象数组去重; 将原数组插入到新数组的时候,将插入的对象和新数组中的已插入对象进行比较,若不相同,则插入到...

网友评论

      本文标题:重捡Java(三)数组

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