Java中数组常用的操作方法

在Java中,数组有许多常用的操作方法。下面是一些常见的Java数组操作方法:

  1. 复制数组:System.arraycopy()
    int[] source = {1, 2, 3, 4, 5};
    int[] destination = new int[5];
    System.arraycopy(source, 0, destination, 0, source.length);
    

复制数组后,对于复制后的数组进行赋值或者其他操作不会影响到原始数组。

在这里插入图片描述

  1. 数组排序:Arrays.sort()

    int[] numbers = {5, 3, 1, 4, 2};
    Arrays.sort(numbers);
    
  2. 数组查找:Arrays.binarySearch()

    int[] numbers = {1, 2, 3, 4, 5};
    int index = Arrays.binarySearch(numbers, 3);
    
  3. 数组填充:Arrays.fill()

    int[] numbers = new int[5];
    Arrays.fill(numbers, 0);
    
  4. 数组转换为字符串:Arrays.toString()

    int[] numbers = {1, 2, 3, 4, 5};
    String numbersString = Arrays.toString(numbers);
    
  5. 数组比较:Arrays.equals()

    int[] numbers1 = {1, 2, 3};
    int[] numbers2 = {1, 2, 3};
    boolean areEqual = Arrays.equals(numbers1, numbers2);
    
  6. 数组拷贝:Arrays.copyOf()

    int[] source = {1, 2, 3, 4, 5};
    int[] destination = Arrays.copyOf(source, source.length);
    
  7. 数组反转:Collections.reverse()

    List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
    Collections.reverse(list);
    
  8. 数组比较排序:Arrays.sort()可以对数组进行自定义排序,可以使用lambda表达式或实现Comparator接口的方式进行比较和排序。

    Integer[] numbers = {5, 3, 1, 4, 2};
    Arrays.sort(numbers, (a, b) -> b.compareTo(a)); // 降序排序
    
  9. 数组元素是否存在:Arrays.asList() 将数组转换为列表,然后可以使用contains()方法查找元素是否存在。

    String[] names = {"Alice", "Bob", "Charlie"};
    List<String> nameList = Arrays.asList(names);
    boolean containsName = nameList.contains("Bob");
    
  10. 数组扩容:Arrays.copyOf() 可以通过指定新的长度,将现有的数组扩展或缩小为指定大小的新数组。

    int[] numbers = {1, 2, 3, 4, 5};
    int[] expandedNumbers = Arrays.copyOf(numbers, 8); // 扩展数组长度为8
    
  11. 数组元素筛选:可以使用流和过滤器来筛选数组中符合特定条件的元素。

    int[] numbers = {1, 2, 3, 4, 5};
    int[] evenNumbers = Arrays.stream(numbers).filter(n -> n % 2 == 0).toArray();
    
  12. 数组元素求和:可以使用循环遍历数组,并将每个元素相加来计算数组元素的总和。

    int[] numbers = {1, 2, 3, 4, 5};
    int sum = 0;
    for (int num : numbers) {
        sum += num;
    }
    
  13. 数组元素最大值和最小值:可以使用循环遍历数组,同时记录最大值和最小值,并在遍历完成后得到最大值和最小值。

    int[] numbers = {1, 2, 3, 4, 5};
    int max = Integer.MIN_VALUE;
    int min = Integer.MAX_VALUE;
    for (int num : numbers) {
        max = Math.max(max, num);
        min = Math.min(min, num);
    }
    
  14. 数组元素平均值:可以使用循环遍历数组,计算数组元素的总和,然后除以数组的长度得到平均值。

    int[] numbers = {1, 2, 3, 4, 5};
    int sum = 0;
    for (int num : numbers) {
        sum += num;
    }
    double average = (double) sum / numbers.length;
    
  15. 数组元素去重:可以使用Set集合来去除数组中的重复元素。

    Integer[] numbers = {1, 2, 3, 3, 4, 4, 5};
    Set<Integer> set = new HashSet<>(Arrays.asList(numbers));
    Integer[] uniqueNumbers = set.toArray(new Integer[0]);
    
  16. 数组元素反转:可以使用两个指针,一个指向数组首部,一个指向数组尾部,交换元素位置来实现数组的反转。

    int[] numbers = {1, 2, 3, 4, 5};
    int left = 0;
    int right = numbers.length - 1;
    while (left < right) {
        int temp = numbers[left];
        numbers[left] = numbers[right];
        numbers[right] = temp;
        left++;
        right--;
    }
    
### Java 数组常用方法 Java数组是一种基本的数据结构,用于存储相同类型的多个元素。为了方便操作数组Java 提供了一系列内置的方法来处理常见的需求,比如查找、排序、复制等。 以下是 Java 数组的一些常见方法及其用途: #### 1. 查找数组中的某个值 `Arrays.binarySearch()` 方法可以在已排序的数组中执行二分查找,返回指定值的索引位置。如果未找到该值,则返回负数。 ```java import java.util.Arrays; int[] array = {1, 2, 3, 4, 5}; int index = Arrays.binarySearch(array, 3); System.out.println(index); // 输出 2 ``` 此方法适用于有序数组[^1]。 #### 2. 复制数组的一部分或全部 `Arrays.copyOf()` 和 `System.arraycopy()` 是两个常用的复制方法。前者创建一个新的数组并复制原数组的内容到新数组中;后者则直接在内存中完成数据拷贝。 ```java // 使用 System.arraycopy() int[] srcArray = {1, 2, 3, 4, 5}; int[] destArray = new int[5]; System.arraycopy(srcArray, 0, destArray, 0, srcArray.length); // 使用 Arrays.copyOf() int[] newArray = Arrays.copyOf(srcArray, srcArray.length); ``` #### 3. 填充数组 `Arrays.fill()` 可以用来向整个数组或者部分数组填充相同的值。 ```java int[] filledArray = new int[5]; Arrays.fill(filledArray, 7); System.out.println(Arrays.toString(filledArray)); // [7, 7, 7, 7, 7] ``` #### 4. 排序数组 `Arrays.sort()` 能够对数组进行升序排列,默认支持基础数据类型以及实现了 `Comparable` 接口的对象。 ```java int[] unsortedArray = {5, 3, 8, 1, 2}; Arrays.sort(unsortedArray); System.out.println(Arrays.toString(unsortedArray)); // [1, 2, 3, 5, 8] ``` #### 5. 深度比较两个数组是否相等 尽管可以通过简单的循环逐一比较两数组对应项,但更简便的方式是调用 `Arrays.equals()` 或者针对多维数组使用的 `Arrays.deepEquals()` 来实现这一目的。 ```java boolean isEqual = Arrays.equals(new int[]{1, 2}, new int[]{1, 2}); System.out.println(isEqual); // true ``` 除了上述提到的功能外,还有更多实用函数可供开发者探索学习,例如字符串转换等功能[^2][^3]。 对于 JavaScript 的数组而言也有其独特的常用方法集合,像 reverse 这样的方法会直接影响原始数组内容而并非生成副本[^4]。 ### 总结 以上列举了一些关于如何利用 Java 自带工具类来进行高效便捷地管理维护数组资源的例子。通过掌握这些技巧可以帮助程序员更加灵活自如地操控复杂场景下的数据集。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木偶☜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值