java 中的Arraylist 如何实现去重
时间: 2024-02-12 15:07:00 浏览: 19
Java中的ArrayList可以通过遍历List中的元素,然后将每个元素与其它元素做比较,判断是否重复,进而实现去重。具体实现可以使用两层循环,外层循环遍历整个List,内层循环遍历外层循环之后的元素,判断是否有重复元素,如果有则将其删除。以下是一个示例代码:
```
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
list.add(4);
list.add(2);
for (int i = 0; i < list.size() - 1; i++) {
for (int j = i + 1; j < list.size(); j++) {
if (list.get(i).equals(list.get(j))) {
list.remove(j);
j--;
}
}
}
System.out.println(list); // [1, 2, 3, 4]
```
这段代码会输出去重后的ArrayList,即 [1, 2, 3, 4]。其中,如果两个元素相等,则将后面的元素删除,并将下标j减1,以便下一次比较。
相关问题
java对list实现去重
Java中对List实现去重有多种方法,以下是其中两种常用的方法:
1.使用Set去重
```java
List<String> list = new ArrayList<>();
list.add("apple");
list.add("banana");
list.add("orange");
list.add("apple");
Set<String> set = new HashSet<>(list);
list.clear();
list.addAll(set);
System.out.println(list); // 输出:[apple, banana, orange]
```
2.使用Java8的Stream去重
```java
List<String> list = new ArrayList<>();
list.add("apple");list.add("banana");
list.add("orange");
list.add("apple");
List<String> result = list.stream().distinct().collect(Collectors.toList());
System.out.println(result); // 输出:[apple, banana, orange]
```
java arraylist去重
在 Java 中,可以使用 Set 接口对 List 进行去重。Set 是不允许重复元素的集合,可以将 List 中所有元素添加到 Set 中,然后再将 Set 转换回 List 即可完成去重操作。
示例代码:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>(Arrays.asList("Tom", "Jerry", "Tom", "Mary", "Jerry"));
Set<String> set = new HashSet<>(list);
List<String> uniqueList = new ArrayList<>(set);
System.out.println(uniqueList); // [Tom, Jerry, Mary]
}
}
```
在上面的例子中,我们首先创建了一个包含多个重复元素的 List。然后,我们将该 List 转换成 Set,利用 Set 的去重功能,最后将 Set 转换回 List,得到的 uniqueList 就是去重后的 List。
需要注意的是,如果要对自定义对象进行去重,则需要对该对象重写 equals() 和 hashCode() 方法。如果需要对 List 中的自定义对象按照某个属性进行去重,可以使用 Comparator 接口和 Collections.sort() 方法。