21xrx.com
2024-09-20 00:58:33 Friday
登录
文章检索 我的文章 写文章
Java数组去重方法
2023-06-24 08:04:00 深夜i     --     --
Java 数组 去重 方法 unique

Java是一种非常流行的编程语言,经常用于开发各种应用程序。当我们需要对一个数组进行操作时,经常需要去重,即删除数组中重复的元素。下面介绍几种Java数组去重的方法。

方法一:使用Set集合去重

Set集合是Java中的一种无序不重复的集合,可以被用来去重。我们可以将数组中的元素添加到Set集合中,这样重复的元素就会自动被去除。

代码示例:

int[] arr = 6;

Set set = new HashSet<>();

for (int i = 0; i < arr.length; i++) {

  set.add(arr[i]);

}

System.out.println("去重后的数组为:" + set);

输出结果:

去重后的数组为:[1, 2, 3, 4, 5, 6]

方法二:使用Java 8的流式处理去重

Java 8提供了流式处理(Streams)的功能,可以方便地对数组进行操作。使用Java 8的流式处理可以快速去重。

代码示例:

int[] arr = 4;

int[] distinctArr = Arrays.stream(arr).distinct().toArray();

System.out.println("去重后的数组为:" + Arrays.toString(distinctArr));

输出结果:

去重后的数组为:[1, 2, 3, 4, 5, 6]

方法三:使用循环去重

循环遍历数组,比较当前元素和之前的元素是否相等,相等则跳过,否则将该元素加入到新的数组中。

代码示例:

int[] arr = 2;

int[] distinctArr = new int[arr.length];

int index = 0;

for (int i = 0; i < arr.length; i++) {

  boolean isExists = false;

  for (int j = 0; j < index; j++) {

    if (arr[i] == distinctArr[j])

      isExists = true;

      break;

  }

  if (!isExists) {

    distinctArr[index++] = arr[i];

  }

}

distinctArr = Arrays.copyOf(distinctArr, index);

System.out.println("去重后的数组为:" + Arrays.toString(distinctArr));

输出结果:

去重后的数组为:[1, 2, 3, 4, 5, 6]

三种方法中建议使用第一种方法,因为使用Set集合能够自动去重且效率高,而且代码简洁易懂。其次推荐使用第二种方法,使用Java 8的流式处理可以对数组进行快速操作。最后才推荐使用第三种方法,代码相对繁琐并且时间复杂度较高。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复