List、Set、Map 阳光穿透心脏的1/2处 2024-03-31 13:21 65阅读 0赞 ## 一、结构特点 ## > **List、Set**都继承与**Collection**接口。 > > **Map**是基于键值对形势存储的数据结构,是个**独立的接口**。 > > **List**集合是**有序**的,且元素**可以重复**。 > > **Set**集合是**无序**的,且它所存储的**元素是不可重复的**。 > > **Map**集合是**无序**的,它的**键不允许重复**,**元素可以重复**。 ## 二、怎么实现 ## #### List: #### List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("a"); System.out.println(list); // 普通for循环 for(int i = 0; i < list.size(); i++){ String s = list.get(i); System.out.println(s); } // 增强for循环 for (String s : list) { System.out.println(s); } **打印结果:** ![7769abea807d441c88d472e9a94a73ce.png][] 存储是有序的,且元素可以重复 -------------------- #### Set: #### Set<String> set = new HashSet<>(); set.add("1"); set.add("6"); set.add("x"); set.add("2"); set.add("x"); set.add("a"); set.add("a"); System.out.println(set); // 迭代器 Iterator<String> iterator = set.iterator(); while (iterator.hasNext()) { String s = iterator.next(); System.out.println(s); } **打印结果:** ![0139a6644e244acd875c1aef8e4d220c.png][] 可以看到Set打印出来的结果跟我添加的结果顺序是不同的,而且这些结果是不重复的 -------------------- #### Map: #### Map<String,String> map = new HashMap<>(); map.put("name","Jack"); map.put("sex","man"); map.put("age","19"); map.put("name","S1mple"); map.put("height","183"); // Map会把所有的Key存放在一个Set集合中,通过.keySet()方法得到所有的Key值 Set<String> keySet = map.keySet(); // 使用迭代器打印Key值所对应的Value值 Iterator<String> it = keySet.iterator(); while (it.hasNext()) { String key = it.next(); String value = map.get(key); System.out.println(key+":"+value); } **打印结果:** ![5010e0c441c1486bb64acc35d73dad11.png][] 可以看到它是无序的,它的键不允许重复,元素可以重复。 ## 三、总结 ## **List和Set的父类都是Conection,而Map是一个独立的接口** **List是有序的而且里面的数据是允许重复的** **Set和Map是无序的。Set的值不允许重复。而Map是基于键值对形势存储的数据结构,所以它的Key不允许重复,但是Value允许重复。** [7769abea807d441c88d472e9a94a73ce.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/31/6050a68473d640c5920d5fad78550683.png [0139a6644e244acd875c1aef8e4d220c.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/31/c1937745bafc42b588c0378226290c38.png [5010e0c441c1486bb64acc35d73dad11.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/03/31/54e5141d2ffa4d5095480c3a53541646.png
还没有评论,来说两句吧...