集合下

集合下:
Set<E>:
一个不包括重复元素的Collection

HashSet<E>:
他不保证set的迭代顺序
保证元素唯一性的原理:
hashset.add(E e)
首先比较对象的哈希值,hashCode()用来计算哈希值
如果哈希值相同就继续执行equals()对比如果返回true就不添加
如果其他类中没有重写equals(),hashCode()方法就不能确保唯一性

Map<k,v>:
HashMap<k,v>:
保证k的唯一性
Map<k,v> map=new HashMap<k,v>();
map.put(k,v);
成员方法:
map.put(k,v)//添加元素返回v的值
map.remove(k)//以k删除元素返回被删除的v
map.clear()//移除所有的元素
map.containsKey(k)//用k检查元素是否包含指定的k
map.containsValue(v)/用v检查元素是否包含指定的v
map.isEmpty()//判断集合是否为空 不为空返回false
map.size()//返回集合中的键值对的对数

map.get(k)//根据k获取值
Set<K> keys= map.keySet();//获取所有k的值
Collection<v> values=map.values();//获取所有v的值
Set<Map.Entry<k,v>> entries = map.entrySet();//获取一个以map<k,v>为集合的键值对集合

Map集合的两种遍历:
例:

 package com.hy_1;

        import java.util.HashMap;
        import java.util.Map;
        import java.util.Set;

        public class HashMapDemo {
            public static void main(String[] args) {
                Map<String,String> map=new HashMap<>();
                map.put("123","123");
                map.put("456","456");
                map.put("789","789");
                map.put("198723","198723");
                //通过k找v
                Set<String> keys = map.keySet();
                for (String key : keys) {
                    System.out.println(key+"-----"+map.get(key));
                }
                System.out.println("----------------------------");
                //通过键值对对象的集合中找键和值
                Set<Map.Entry<String, String>> entries = map.entrySet();
                for (Map.Entry<String, String> entry : entries) {
                    System.out.println(entry.getKey()+"------"+entry.getValue());
                }


            }
        }
    //其中之一练习:
        package com.hu_3;

        import java.util.ArrayList;
        import java.util.HashMap;
        import java.util.Map;
        import java.util.Set;

        public class ArrayListInHashMap {
            public static void main(String[] args) {

                ArrayList<HashMap<String, String>> arrayList = new ArrayList<>();
                HashMap<String, String> map = new HashMap<>();
                map.put("孙策", "大乔");
                map.put("周瑜", "小乔");
                arrayList.add(map);
                HashMap<String, String> map2 = new HashMap<>();
                map2.put("郭靖", "黄蓉");
                map2.put("杨过", "小龙女");
                arrayList.add(map2);
                HashMap<String, String> map3 = new HashMap<>();
                map3.put("令狐冲", "任盈盈");
                map3.put("林平之", "岳林姗");
                arrayList.add(map3);
                for (HashMap<String, String> stringStringHashMap : arrayList) {
                    Set<Map.Entry<String, String>> keys = stringStringHashMap.entrySet();
                    for (Map.Entry<String, String> key : keys) {
                        System.out.println(key.getKey() + "---" + key.getValue());
                    }
                    System.out.println("---------");
                }

            }
        }

 

posted @ 2020-07-09 14:46  小胡code  阅读(90)  评论(0编辑  收藏  举报