Map集合与Collections集合工具类

1.1 Map集合特点

格式:interface Map  K:键的类型;V:值的类型

        键值对映射关系

        一个键对应一个值

        键不能重复,值可以重复

        元素存取无序

1.2基本功能

V put(K key,V value)                                   添加元素

V remove(Object key)                                 根据键删除键值对元素

void clear()                                                  移除所有的键值对元素

boolean containsKey(Object key)               判断集合是否包含指定的键

boolean containsValue(Object value)         判断集合是否包含指定的值

boolean isEmpty()                                       判断集合是否为空

int size()                                                       集合的长度,也就是集合中键值对的个数

1.3  获取功能

V get(Object key)                                         根据键获取值

Set keySet()                                           获取所有键的集合

Collection values()                                获取所有值的集合

Set> entrySet()                获取所有键值对对象的集合

1.4 Map集合遍历

方法一:

public static void main(String[] args) {
        //创建集合对象
        Map map = new HashMap();

        //添加元素
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //获取所有键的集合。用keySet()方法实现
        Set keySet = map.keySet();
        //遍历键的集合,获取到每一个键。用增强for实现
        for (String key : keySet) {
            //根据键去找值。用get(Object key)方法实现
            String value = map.get(key);
            System.out.println(key + "," + value);
        }
    }

方法二:

public static void main(String[] args) {
        //创建集合对象
        Map map = new HashMap();

        //添加元素
        map.put("张无忌", "赵敏");
        map.put("郭靖", "黄蓉");
        map.put("杨过", "小龙女");

        //获取所有键值对对象的集合
        Set> entrySet = map.entrySet();
        //遍历键值对对象的集合,得到每一个键值对对象
        for (Map.Entry me : entrySet) {
            //根据键值对对象获取键和值
            String key = me.getKey();
            String value = me.getValue();
            System.out.println(key + "," + value);
        }
    }

1.5 集合嵌套ArrayList嵌套HashMap

public static void main(String[] args) {
        //创建ArrayList集合
        ArrayList> array = new ArrayList>();

        //创建HashMap集合,并添加键值对元素
        HashMap hm1 = new HashMap();
        hm1.put("孙策", "大乔");
        hm1.put("周瑜", "小乔");
        //把HashMap作为元素添加到ArrayList集合
        array.add(hm1);

        HashMap hm2 = new HashMap();
        hm2.put("郭靖", "黄蓉");
        hm2.put("杨过", "小龙女");
        //把HashMap作为元素添加到ArrayList集合
        array.add(hm2);

        HashMap hm3 = new HashMap();
        hm3.put("令狐冲", "任盈盈");
        hm3.put("林平之", "岳灵珊");
        //把HashMap作为元素添加到ArrayList集合
        array.add(hm3);

        //遍历ArrayList集合
        for (HashMap hm : array) {
            Set keySet = hm.keySet();
            for (String key : keySet) {
                String value = hm.get(key);
                System.out.println(key + "," + value);
            }
        }
    }

1.6 集合嵌套之HashMap嵌套ArrayList

  public static void main(String[] args) {
        //创建HashMap集合
        HashMap> hm = new HashMap>();

        //创建ArrayList集合,并添加元素
        ArrayList sgyy = new ArrayList();
        sgyy.add("诸葛亮");
        sgyy.add("赵云");
        //把ArrayList作为元素添加到HashMap集合
        hm.put("三国演义",sgyy);

        ArrayList xyj = new ArrayList();
        xyj.add("唐僧");
        xyj.add("孙悟空");
        //把ArrayList作为元素添加到HashMap集合
        hm.put("西游记",xyj);

        ArrayList shz = new ArrayList();
        shz.add("武松");
        shz.add("鲁智深");
        //把ArrayList作为元素添加到HashMap集合
        hm.put("水浒传",shz);

        //遍历HashMap集合
        Set keySet = hm.keySet();
        for(String key : keySet) {
            System.out.println(key);
            ArrayList value = hm.get(key);
            for(String s : value) {
                System.out.println("\t" + s);
            }
        }
    }

1.7 统计字符串中每个字符出现的次数

public static void main(String[] args) {
        //键盘录入一个字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String line = sc.nextLine();

        //创建HashMap集合,键是Character,值是Integer
//        HashMap hm = new HashMap();
        TreeMap hm = new TreeMap();

        //遍历字符串,得到每一个字符
        for (int i = 0; i < line.length(); i++) {
            char key = line.charAt(i);

            //拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值
            Integer value = hm.get(key);

            if (value == null) {
                //如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储
                hm.put(key,1);
            } else {
                //如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值
                value++;
                hm.put(key,value);
            }
        }

        //遍历HashMap集合,得到键和值,按照要求进行拼接
        StringBuilder sb = new StringBuilder();

        Set keySet = hm.keySet();
        for(Character key : keySet) {
            Integer value = hm.get(key);
            sb.append(key).append("(").append(value).append(")");
        }

        String result = sb.toString();

        //输出结果
        System.out.println(result);
    }

2 Collections集合工具类

2.1 方法

public static void sort(List list)                       将指定的列表按升序排序

public static void reverse(List list)                 反转指定列表中元素的顺序

public static void shuffle(List list)                   使用默认的随机源随机排列指定的列表


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部