java的collection&&map集合总结
把自定义的对象放入HashSet或LinkedHashSet,为保证元素内容不重复,需要:
• 覆盖hashCode( )方法,保证相同对象返回相同的值,提供
调用equals( )方法的机会。
• 覆盖equals( )方法,相同对象返回true。
TreeSet是能够给元素排序的Set集合,要给元素排序,必须提供排序规则。
提供排序规则的方式:
1/元素所属的类实现Comparable接口
如果一个对象所属的类实现了Comparable接口,则可以直
接把这些对象放入TreeSet集合中,TreeSet集合会自动调用对
象的compareTo( )方法,根据返回的结果进行排序:
• 负数:this对象排在obj对象之前
• 正数:this对象排在obj对象之后
• 0:视为重复对象
2/使用实现了Comparator接口的对象创建TreeSet对象
使用Comparator实现类的对象创建的TreeSet集合不会使用
对象的compareTo( )方法排序,所以不要求对象所属的类必须
实现Comparable接口。TreeSet集合根据compare( )方法返回
的结果进行排序:
• 负数:o1对象排在o2对象之前
• 正数:o1对象排在o2对象之后
• 0:视为重复对象
Set set = new TreeSet ( new Comparator( ) {
public int compare( Object o1, Object o2 ) {
return ( ( Student ) o1 ).getAge( )
- ( ( Student ) o2 ).getAge( );
}
} );