• Java学习笔记(6)List和Map集合


    一、集合

    Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。

    Java集合主要由2大体系构成,分别是Collection体系和Map体系,其中Collection和Map分别是2大体系中的顶层接口。

    Collection主要有三个子接口,分别为List(列表)、Set(集)、Queue(队列)。其中,List、Queue中的元素有序可重复,而Set中的元素无序不可重复;

    List中主要有ArrayList、LinkedList两个实现类;Set中则是有HashSet实现类;而Queue是在JDK1.5后才出现的新集合,主要以数组和链表两种形式存在。

    Map同属于java.util包中,是集合的一部分,但与Collection是相互独立的,没有任何关系。Map中都是以key-value的形式存在,其中key必须唯一,主要有HashMap、HashTable、TreeMap三个实现类。

     

    转载链接:https://www.jianshu.com/p/25aa92f8d681

     
    二、List集合
    package Java基础.集合;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestList {
        public static void main(String[] args) {
            // List是个接口,实现了Collection接口,主要有两个实现类:ArrayList和LinkedList类。
            // List集合允许出现重复的元素
            // List集合中的元素是有序的,可以根据索引位置来检索List集合中的元素
            List<String> list = new ArrayList<String>();// 可以使用接口对象来接收具体实现接口类的new对象,创建List集合
            list.add("a");// 索引为1
            list.add("b");
            list.add("c");
            list.add("d");
            list.add("a");// 元素可重复
    
    
            System.out.println(list);// 打印list所有元素
            System.out.println(list.get(2));// 打印下标为2的元素
    
            list.add(1, "f");// 指定索引位置插入数据
            System.out.println(list);// 打印list所有元素
    
            List<String> l = new ArrayList<String>();
            l.add("123");
            l.add("456");
    
            list.addAll(2, l); // 指定索引位置插入集合
            System.out.println(list);
    
            System.out.println(list.indexOf("a"));// 获取指定元素在集合中的第一次出现的下标
            System.out.println(list.lastIndexOf("a"));// 获取指定元素在集合中的最后一次出现的下标
    
            list.remove(2);// 删除指定索引位置的数据
            System.out.println(list);
    
            list.set(0, "ff"); // 根据指定下标修改元素
            System.out.println(list);
    
            List<String> sublist = list.subList(2, 4);// 根据索引下标的起始位置截取一段元素形成一个新的集合,和python切片操作一样,顾头不顾尾
            System.out.println(sublist);
    
            System.out.println(list.size());// 集合的长度
    
    
        }
    }
    二、Map集合
      map是存储的key-value键值对,是无序的 ;
      TreeMap存储Key-Value对时,需要根据Key对key-value对进行排序。TreeMap可以保证所有的Key-valued对处于有序的状态
      TreeMap的key排序:
        1.自然排序:TreeMap的所有的Key必须实现Comparable接口,而且所有的Key应该是同一个类的对象,否则将会抛出ClassCastException
        2.定制排序:了解即可,一般只会使用自然排序
     
    package Java基础.集合;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    import java.util.TreeMap;
    
    public class TestMap {
        public static void main(String[] args) {
            Map<String,Integer> map = new HashMap<String,Integer>();
            map.put("b", 1);// 通过put方法添加数据
            map.put("c", 2);
            map.put("e", 2);
            System.out.println(map);
    
            System.out.println(map.get("b"));// 根据key取值
            map.remove("c");// 根据key移除键值对
            System.out.println(map);
    
            System.out.println(map.size()); // map集合的长度
    
            System.out.println(map.containsKey("b"));// 判断当前集合是否包含指定的key
    
            System.out.println(map.containsValue(3));// 判断当前集合是否包含指定的value
    
    //        map.clear(); // 清空map
    
            Set<String> keys = map.keySet();// 获取map集合的key集合
            map.values();// 获取map集合的value集合
    
            // 遍历map集合,类似于python中的遍历字典,通过map.keySet()
            for(String key:keys){
                System.out.println("key:"+ key + " ,value:" + map.get(key));
            }
    
            // 通过map.entrySet()遍历
            Set<Map.Entry<String, Integer>> entries = map.entrySet();
            for(Map.Entry<String,Integer> en:entries){
                System.out.println("key:"+ en.getKey() + " ,value:"+en.getValue());
            }
    
            // treeMap,自然排序使用的是字典排序,
            TreeMap<Integer, String> treemap = new TreeMap<Integer, String>(); // 创建treeMap集合
            treemap.put(4, "a");
            treemap.put(2, "a");
            treemap.put(1, "a");
            treemap.put(3, "a");
            System.out.println(treemap);
    
            TreeMap<String, String> treemap2 = new TreeMap<String, String>(); // 创建treeMap集合
            treemap2.put("b","b");
            treemap2.put("c","c");
            treemap2.put("d","d");
            treemap2.put("ab","ab");
            treemap2.put("1","sdc");
            System.out.println(treemap2);
    
    
        }
    }
     
     
     
  • 相关阅读:
    【HIDS】关于HIDS的一些看法
    图片在容器内水平垂直居中显示
    C++ 实现Cholesky分解
    Minikube 安装和简单使用
    关于.net的一些记录
    C#将窗体Form嵌入主窗体Panel中的一些问题
    Pod持久化
    Maven打包包含jar包
    Adam
    [漏洞]DNS Server Spoofed Request Amplification DDoS
  • 原文地址:https://www.cnblogs.com/bugoobird/p/13781759.html
Copyright © 2020-2023  润新知