Java 集合-set集合,Map接口

  一、set集合

  1、特点:怎么存不一定怎么取。没有下标。不可重复。

    2、set集合的add()会默认调用改对象类型的equals方法和hashCode方法。进行判断,如果哈希码不同则存入,如果相同调用equals判断值是否相同,如果相同终止,不同则存储。

      注意:自定义存储类型的类必须重写 equals方法和hashCode方法。

   3、HashSet 集合 是有 数组和链表 数据结构 组合成的 (哈希表)

     4、HashSet  中的方法:add():追加指定元素

              clear():移除集合中所有元素

              contains(Object o) :查找指定元素  返回 Boolean

              isEmpty() :判断是不是空集合,则返回 Boolean。

              remove(Object o) : 移除指定元素,返回Boolean。

              iterator() :返回对此 set 中元素进行迭代的迭代器。返回 iterator 对象

   5、LinkedHashSet 是由  链表 和 哈希表 组合而成 (双重链表)特点:有顺序,怎么存怎么取

   二、Map接口

  1、键值对集合

    2、该类是接口不能实例化用其实现类 HashMap 和  LinkedHashMap 类

    3、定义:Map<K, V> map = new HashMap<K,V>();

    4、常用方法:get(Object key):根据key 获取 value ;

          put(Object key,Object value):添加key 和 value

          remove(Object key):通过key 删除value 

   5、遍历 Map 集合 的四种方式

    

 1 public static void main(String[] args) {
 2         Map<String, Integer> map = new HashMap<String, Integer>();
 3         map.put("a", 1);
 4         map.put("d", 2);
 5         map.put("b", 2);
 6         map.put("a", 1);
 7         // 获取元素 根据key获取value
 8         System.out.println(map.get("a"));
 9         System.out.println(map.get("b"));
10         System.out.println(map.get("d"));
11         map.remove("a");
12         System.out.println(map);
13         System.out.println();
14         // 遍历
15 
16         // 方法一 增强for
17         // 1、首先获取key所在的Set集合
18         // Set<String> set = map.keySet();
19         // // 2、遍历所有key所在的set集合取到每一个key
20         // for (String str : set) {
21         // System.out.println(str + "..." + map.get(str));
22         // }
23 
24         // 方法二 迭代器
25         // 1、首先获取key所在的Set集合
26         // Set<String> set = map.keySet();
27         // Iterator<String> it = set.iterator();
28         // while (it.hasNext()) {
29         // String key = it.next();
30         // System.out.println(key + "..." + map.get(key));
31         // }
32 
33         // 方法三 Map.Entry 加增强 for
34         // Set<Map.Entry<String, Integer>> set = map.entrySet();
35         // for (Map.Entry<String, Integer> str : set) {
36         // System.out.println(str.getKey() + "..." + str.getValue());
37         // }
38 
39         // 方法四   Map.Entry 加 迭代器
40         // Set<Map.Entry<String, Integer>> set = map.entrySet();
41         // Iterator<Map.Entry<String, Integer>> it = set.iterator();
42         // while (it.hasNext()) {
43         // Entry<String, Integer> str = it.next();
44         // System.out.println(str.getKey() + "..." + str.getValue());
45         // }
46     }

 

     

 

posted @ 2019-09-28 21:28  养一只Tom猫  阅读(298)  评论(0编辑  收藏  举报