对集合的一点总结。
对HashSet集合排序可以把它转换成TreeSet和List的实现类ArrayList、LinkedList。
其中TreeSet实现自定义类排序需要实现Comparable接口,覆盖comparaTo()来进行排序,也可以实现Comparator接口,覆盖compare方法。将Comparator接口的对象作为参数传递给TreeSet集合的构造器。
List实现类是ArrayList和LinkedList利用Collections类里的sort()方法升序,reverse()方法逆序,需要自定义排序也需要实现Comparable接口,覆盖comparaTo()来进行排序。
对集合的Set、List、Map接口的实现类remove()方法是判断equals()是否为true,需要重写equals()方法时要重写hashCode()方法,重写最好加上@Override,不然一不小心就写成另一个方法了。
对于HashMap遍历的四种方法
public static void main(String[] args){
Map<String,String>map = new HashMap<String,String>();
map.put("1",value1"");
map.put("2","value2");
map.put("3","vlaue3");
//第一种:普遍使用,二次取值
System.out.println("通过Map.keySet遍历key和value:");
for(String key:map.key.Set()){
System.out.println("key="+key+"and value="+map.get(key));
}
//第二种
System.out.println("通过Map.entrySet使用iterator遍历key和value:");
Iterator<Map.Entry<String,String>> it = map.entrySet().iterator();
while(it.hasNext()){
Map.Entry<String,String>entry = it.next();
System.out.println("key"+entry.getKey()+"and value="+entry.getValue());
}
//第三种:
System.out.println("通过Map.entrySet遍历key和value");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
}
//第四种
System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
for (String v : map.values()) {
System.out.println("value= " + v);
}
}