Java重温学习笔记,集合

一、Set和List的区别

  •  Set 接口实例存储的是无序的,不重复的数据。List 接口实例存储的是有序的,可以重复的元素。
  •  Set检索效率低下,删除和插入效率高,插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet> 。
  •  List可以动态增长,查找元素效率高,插入删除效率低,因为会引起其他元素位置改变 <实现类有ArrayList,LinkedList,Vector> 。

二、与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。

以下情况使用 ArrayList :

  • 频繁访问列表中的某一个元素。
  • 只需要在列表末尾进行添加和删除元素操作。

以下情况使用 LinkedList :

  • 你需要通过循环迭代来访问列表中的某些元素。
  • 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。

三、HashSet与HashMap的区别

四、ArrayList的几种遍历方式

import java.util.*;
 
public class MyDemo {
 public static void main(String[] args) {
     List<String> list = new ArrayList<String>();
     list.add("Str1");
     list.add("Str2");
     list.add("Str3");
     list.add("Str4");
     
     // For-Each 遍历
     for (String str : list) {
        System.out.println(str);
     }
 
     // 数组遍历
     String[] strArray = new String[list.size()];
     list.toArray(strArray);
     for(String str:strArray) {
        System.out.println(str);
     }
     
     // 迭代器遍历
     Iterator<String> ite=list.iterator();
     while(ite.hasNext()) {
         System.out.println(ite.next());
     }
 }
}

五、Map的遍历

import java.util.*;
 
public class MyDemo {
     public static void main(String[] args) {
      Map<String, String> map = new HashMap<String, String>();
      map.put("key1", "value1");
      map.put("key2", "value2");
      map.put("key3", "value3");
      
      // keySet遍历
      for (String key : map.keySet()) {
          System.out.println(key + "=" + map.get(key));
      }
      
      // iterator遍历,此种意义不大,仅供参考
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
        Map.Entry<String, String> entry = it.next();
        System.out.println(entry.getKey() + "=" + entry.getValue());
      }
      
      // entrySet遍历,推荐
      for (Map.Entry<String, String> entry : map.entrySet()) {
        System.out.println(entry.getKey() + "=" + entry.getValue());
      }
    
      // 直接输出值
      for (String v : map.values()) {
        System.out.println(v);
      }
     }
}

 六、集合框架体系图,来源于runoob网站,感觉挺好的,忍不住就摘录过来:

 七、以前写的 ,关于Java-Collections的相关文章,参考:

随笔分类 - Java-Collections

本文参考:

https://www.runoob.com/java/java-collections.html

原文地址:https://www.cnblogs.com/nayitian/p/14903492.html