collection接口下面分别有二个接口继承:List和set;set接口下面有一个SortedSet<E>接口。SortedSet<E> 接口的实现类是Class TreeSet<E>;如果我们想要往里面
添加元素。那么添加进去的元素一定要是可比较的,比如实例化一个带比较器的TreeSet(Comparator<? super E> comparator)的Treeset对象,或者添加进去的元素实现the Comparable interface。Comparator这个接口里面有一个equals方法是不需要我们重写 的,继承object的equals方法总是安全的。假如我们往treeset中添加abcd这些字符对象,不传入比较器的时候打印是按正常的顺序打印的。如果我们希望倒叙排的话则可以传入按照相反顺序排的比较器。
TreeSet<String> ts = new TreeSet<String>(new Comparator<Object>()
{
@Override
public int compare(Object o1, Object o2)
{
String objStr1 = String.valueOf(o1);
String objStr2 = String.valueOf(o2);
return objStr1.compareTo(objStr2);
}
@Override
public boolean equals(Object obj)
{
return super.equals(obj);
}
});
上图中有Arrays和collections二个辅助功能类。主要都是些静态方法。比如都有对数组和集合的排序、获取集合中最多、最小值。
获取Map值的二种方式:
HashMap<String, String> hp = new HashMap<String, String>();
hp.put("a", "hexinli");
hp.put("b", "wangxiaomei");
Set<String> st = hp.keySet();
Iterator<String> it = st.iterator();
while (it.hasNext())
{
System.out.println(hp.get(it.next()));
}
Set<Map.Entry<String, String>> se = hp.entrySet();
for (Iterator<Map.Entry<String, String>> it2 = se.iterator(); it2
.hasNext();)
{
Map.Entry<String, String> me = it2.next();
System.out.println(me.getKey() + ":" + me.getValue());
}