欢迎访问宙启技术站
智能推送

Java函数:如何将数组中的重复元素去除并生成新的数组?

发布时间:2023-06-23 08:14:31

在Java中,我们可以使用多种方法来从数组中去除重复元素并生成一个新的数组。以下是其中的一些方法:

方法1:使用Set集合

Set集合是Java中的一种数据结构,其中的元素不会重复。所以我们可以通过将数组中的元素依次添加到Set集合中,从而去除重复元素。最后,我们可以将Set集合转换成数组。

示例代码:

int[] arr = {1, 2, 3, 2, 4, 3, 5, 6};
Set<Integer> set = new HashSet<Integer>();
for(int i=0; i<arr.length; i++) {
    set.add(arr[i]);
}
Integer[] newArr = set.toArray(new Integer[0]);

方法2:使用Java 8的Stream

在Java 8中,我们可以使用Stream流来处理数组。我们可以通过将数组转换为Stream流,并使用distinct()方法来去除重复的元素。最后,我们可以使用toArray()方法将Stream流转换为数组。

示例代码:

int[] arr = {1, 2, 3, 2, 4, 3, 5, 6};
int[] newArr = Arrays.stream(arr)
                     .distinct()
                     .toArray();

方法3:使用Java中的Map集合

在Java中,Map集合是一种存储键值对的数据结构。我们可以使用Map集合来存储数组中的元素,并去除重复元素。最后,我们可以将Map集合中的所有键转换为数组。

示例代码:

int[] arr = {1, 2, 3, 2, 4, 3, 5, 6};
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
for(int i=0; i<arr.length; i++) {
    map.put(arr[i], i);
}
int[] newArr = new int[map.size()];
int index = 0;
for(Integer key : map.keySet()) {
    newArr[index++] = key;
}

总的来说,以上方法都可以从数组中去除重复元素并生成新的数组。我们可以根据实际需求选择相应的方法。如果我们需要保留原始数组中的顺序,则可以使用方法2或方法3;如果我们不需要保留原始数组中的顺序,则可以使用方法1或方法2。