对集合的一点理解

来源:互联网 发布:红三兵炒股软件下载 编辑:程序博客网 时间:2024/05/22 14:59

     对集合的一点总结。

    对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);  

      }  

  }