TreeSet是一个有序集合,TreeSet中的元素将按照升序排列,缺省是按照自然排序进行排列,意味着TreeSet中的元素要实现Comparable接口。或者有一个自定义的比较器。
我们可以在构造TreeSet对象时,传递实现Comparator接口的比较器对象。实现一个Comparator的比较器,然后比较两个对象的属性,如果对象属性相同,则返回0,并且因为treeset中的记录不会重复,所以就可以达到去重的目的。
public ArrayList<Message> removeDuplicteMessages(ArrayList<Message> messages) { Set<Message> s = new TreeSet<Message>(new Comparator<Message>() {@Override public int compare(Message o1, Message o2) { if (null != o1.getUsername() && null != o2.getUsername()) { return o1.getUsername().compareTo(o2.getUsername()); } else { return 0; } } }); s.addAll(messages); return new ArrayList<Message>(s); }</pre>
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于