集合小结

134 阅读1分钟

集合

  1. List

    1. Arraylist(有序,可重复)

      代码

      public class List {
          public static void main(String[] args) {
              
              Scanner sc=new Scanner(System.in);
              ArrayList<String> list = new ArrayList<>();
      
      //增加要素//增加要素
              list.add("李四");
              list.add("王五");
              list.add(1,"赵六"); //将赵六放在了数组索引值为1的位置
      
      //遍历元素
      //1.普通for循环
              for (int i = 0; i < list.size(); i++) {
                  System.out.println(list.get(i));
              }
      //2.加强for循环
              for (String s : list) {
                  System.out.println(s);
                  
              }
      
              //3.迭代器
              Iterator it = list.iterator();
              while (it.hasNext()) {
                  String m = (String) it.next();//记得强转
                  System.out.println(m);
              }
          }
      }
      
      
      
      
    2. Linkedlist与Arraylist用法一致,只不过前者适合增删,后者适合查询;

      前者的底层数据结构是链表,后者的底层数据结构是数组

  2. Set

    1. HashSet(乱序,去重)

    代码

    //        Hashset用法
            HashSet<String> set = new HashSet<>(list);
            set.add("赵四");
            set.add("赵四");
            set.add("赵四");//HashSet可以去重
            System.out.println("========================遍历器=========================");
    //        迭代器遍历输出
            Iterator<String> it1 = set.iterator();
            while(it1.hasNext()){
                String s= (String)it1.next();
                System.out.println(s);
            }
    
    
    1. TreeSet

      TreeSet和HashSet用法一致,自然排序,去重

  3. Map

    1. HashMap

      //        Map的用法
              HashMap<String, String> map = new HashMap<>();
              map.put("1", "数学");//key-value  ,map增加数值用put
              map.put("2", "语文");//key-value
              map.put("3", "体育");//key-value
      		
      //        加强for +keySet
              for (String k : map.keySet()) {
                  
                  
                  System.out.println(k + "--" + map.get(k));
              }
      //        加强for+entry
      
              for (Map.Entry m:map.entrySet()){
                  System.out.println(m.getKey()+"--"+m.getValue());
              }
      //        迭代器+keySet
              Iterator<String> it2=map.keySet().iterator();
              while(it2.hasNext()){
                  String k=  it2.next();
                  System.out.println(k+" "+map.get(k));
              }
      //        迭代器+entry
      
              System.out.println("=================迭代器+entry===================");
              Iterator<Map.Entry<String, String>> it4 = map.entrySet().iterator();
              while(it4.hasNext()){
                  Map.Entry<String, String> m = it4.next();
                  System.out.println(m.getKey()+" "+m.getValue());
              }
      
      
      
      
      

      ContainsKey的用法(map中是否含有key)

      public class ContainsKey {
          public static void main(String[] args) {
      
              Scanner sc = new Scanner(System.in);
      
              TreeMap<String, String> map = new TreeMap<>();
              map.put("1", "数学");//key-value  ,map增加数值用put
              map.put("a", "语文");//key-value
              map.put("e", "体育");//key-value
              map.put("2", "体育");//key-value
              map.put("5", "体育");//key-value
              map.put("9", "体育");//key-value
      
              System.out.println("请输入一个数字:");
              String s = sc.next();
      
      
      //        加强for +keySet遍历
              for (String k : map.keySet()) {
                  if (map.containsKey(s)) {  //map中是否含有输入的字符串s
                      System.out.println(map.get(s));
      
                  } else {
                      System.out.println("这个数字不存在");
                  }
                  break;
      
              }
              System.out.println("=========================");
              for (String k : map.keySet()) {
                  System.out.println(k + " " + map.get(k));
              }
          }
      }
      
    2. TreeMap(有序排列,去重)