java去除数组重复元素的四种方法

  

关于“java去除数组重复元素的四种方法”的完整攻略,我给您详细讲解。

一、方法一:使用Set去重

使用Set去重是一种简单而高效的方法,它利用Set集合的特点,将重复元素去除,最终得到一个无序不重复的数组。具体步骤如下:

  1. 将数组转换为List集合。
  2. 创建一个新的HashSet集合。
  3. 将List中的元素依次加入HashSet中。
  4. 将HashSet转换为数组。

下面是示例代码:

import java.util.*;

public class RemoveDuplicateUsingHashSet {
    public static void main(String[] args) {
        String[] arr = {"apple", "orange", "banana", "apple", "orange"};
        List<String> list = Arrays.asList(arr);
        Set<String> set = new HashSet<>(list);
        String[] result = set.toArray(new String[set.size()]);
        System.out.println(Arrays.toString(result));
    }
}

运行结果如下:

[banana, orange, apple]

二、方法二:使用LinkedHashSet去重

使用LinkedHashSet去重可以保证元素的顺序不变,同时也能去重。LinkedHashSet继承自HashSet,它内部使用的是LinkedHashMap,具有 HashSet 的查找快和 LinkedHashMap 的有序性。具体步骤如下:

  1. 将数组转换为List集合。
  2. 创建一个新的LinkedHashSet集合。
  3. 将List中的元素依次加入LinkedHashSet中。
  4. 将LinkedHashSet转换为数组。

下面是示例代码:

import java.util.*;

public class RemoveDuplicateUsingLinkedHashSet {
    public static void main(String[] args) {
        String[] arr = {"apple", "orange", "banana", "apple", "orange"};
        List<String> list = Arrays.asList(arr);
        Set<String> set = new LinkedHashSet<>(list);
        String[] result = set.toArray(new String[set.size()]);
        System.out.println(Arrays.toString(result));
    }
}

运行结果如下:

[apple, orange, banana]

三、方法三:使用Stream去重

Java 8引入了Stream API,可以使用Stream的distinct()方法去除重复元素,相对其他方法来说更加优雅。具体步骤如下:

  1. 将数组转换为Stream。
  2. 调用distinct()方法去重。
  3. 将Stream转换为数组。

下面是示例代码:

import java.util.*;
import java.util.stream.Collectors;

public class RemoveDuplicateUsingStream {
    public static void main(String[] args) {
        String[] arr = {"apple", "orange", "banana", "apple", "orange"};
        String[] result = Arrays.stream(arr).distinct().toArray(String[]::new);
        System.out.println(Arrays.toString(result));
    }
}

运行结果如下:

[apple, orange, banana]

四、方法四:使用循环去重

最后一种方法就是使用传统的循环去重。具体步骤如下:

  1. 定义一个新的数组。
  2. 使用循环遍历源数组,如果新数组中不包含当前元素就添加到新数组中。
  3. 将新数组的长度截取到实际存在的元素数量。

下面是示例代码:

import java.util.*;

public class RemoveDuplicateUsingLoop {
    public static void main(String[] args) {
        String[] arr = {"apple", "orange", "banana", "apple", "orange"};
        String[] temp = new String[arr.length];
        int index = 0;
        for (String s : arr) {
            if (!Arrays.asList(temp).contains(s)) {
                temp[index++] = s;
            }
        }
        String[] result = Arrays.copyOf(temp, index);
        System.out.println(Arrays.toString(result));
    }
}

运行结果如下:

[apple, orange, banana]

以上就是“java去除数组重复元素的四种方法”的完整攻略,希望能够对您有所帮助。

相关文章