List<String> words= Arrays.asList("a","b","b","c","c","d"); HashSet<String> set=new LinkedHashSet<>(words); for(String word:set){ System.out.println(word); }
//去掉List集合中重複的元素 List<String> words= Arrays.asList("a","b","b","c","c","d"); //方案一: for(String word:words){ set.add(word); } for(String word:set){ System.out.println(word); }
List<String> words= Arrays.asList("a","b","b","c","c","d"); words.stream().distinct().collect(Collectors.toList()).forEach(System.out::println);
List<String> list= new ArrayList<>(); for (String s:words) { if (!list.contains(s)) { list.add(s); } }
注:當數據元素是實體類時,須要額外重寫equals()和hashCode()方法。
例如:
以學號爲依據判斷重複java
public class Student { String id; String name; int age; public Student(String id, String name, int age) { this.id = id; this.name = name; this.age = age; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Student student = (Student) o; return Objects.equals(id, student.id); } @Override public int hashCode() { return id != null ? id.hashCode() : 0; } @Override public String toString() { return "Student{" + "id='" + id + '\'' + ", name='" + name + '\'' + ", age=" + age + '}'; } }