小弟要去除数据库中重复的内容,自己写了方法(如下),但是自己感觉效率太低,因为数据库中有几百万条的数据,求高手给一个高效率的方法。
- Java code
List<String> list = new ArrayList<String>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("a"); list.add("c"); list.add("c"); list.add("c"); list.add("d"); for (int i = 0; i < list.size(); i++) { for (int j = i+1; j < list.size(); j++) { if(list.get(i).equals(list.get(j))){ list.remove(j); j--; } } } for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); }
------解决方案--------------------
- Java code
import java.util.HashSet;import java.util.Iterator;class User{ String name; int value; User(String name, int value) { this.name = name; this.value = value; } public boolean equals(Object o) { if (!(o instanceof User)) return false; return hashCode() == o.hashCode(); } public int hashCode() { return name.hashCode(); } public String toString() { return String.format("name = %s, value = %d", name, value); }}public class test { public static void main(String[] args) { HashSet<User> set = new HashSet<User>(); User u1 = new User("aaa", 1); User u2 = new User("bbb", 2); User u3 = new User("aaa", 3); set.add(u1); set.add(u2); set.add(u3); Iterator<User> iter = set.iterator(); while (iter.hasNext()) System.out.println(iter.next()); }}