集合框架之Mep

Mep集合的思维导图

 一.Mep集合的特点

1、和set集合一样,具有无序性的特点。

package com.xyl.mep;
 
import java.util.HashMap;
import java.util.Map;
 
/**
 * Map集合特点
 * 1,增删改查
 * 2,键值对形式存在
 * 3,key值可以为空
 */
public class Demo1 {
    public static void main(String[] args) {
        
        Map<String, Object> map=new HashMap<>();
        //增加
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        map.put(null, "6");
        System.out.println(map);
        //删除  移除的元素返回的类型是它本身的Key
        System.out.println(map.remove("d"));
        System.out.println(map);
        //修改  在Map集合中没有下标,键是唯一的
        map.put("c", 5);
        System.out.println(map);
        //查询
        System.out.println(map.get("a"));
    }
}

 输出结果:

{null=6, a=1, b=2, c=3, d=4}
4
{null=6, a=1, b=2, c=3}
{null=6, a=1, b=2, c=5}
1

二、Map集合遍历的方式:

1、entrySet(先获取所有的键,在获得值)
代码如下:

    Map<String, Object> map=new HashMap<>();
        map.put("a", 1);
        map.put("b", 2);
        map.put("c", 3);
        map.put("d", 4);
        
        Set<String> set=map.keySet();
        for (String key : set) {
            System.out.println("key:"+key+";value="+map.get(key));
        }

2、keySet

Set<Entry<String, Object>> entrySet = map.entrySet();
        for (Entry<String, Object> entry : entrySet) {
            System.out.println("key:"+entry.getKey()+";value="+entry.getValue());
        }

 三、常用实现类HashMap ,统计字符串中的字母出现的次数

代码:

package com.xyl.mep;
 
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

 

public class Dome3 {
    public static void main(String[] args) {
        
        String s="adsjflascdkjxncjvkwjoindsklnkajflkajodcnalkdfnaknfadsfsdcncxzvds";
        char[] chars = s.toCharArray();
        Map<Character, Integer> map=new HashMap<Character, Integer>();
        for (char c : chars) {
            Integer num=map.get(c);
            if(num==null||num==0) {
                map.put(c, 1);
            }else {
                map.put(c, num+1);
            }
        }
        
        Set<Entry<Character, Integer>> entrySet = map.entrySet();
        for (Entry<Character, Integer> entry : entrySet) {
            System.out.println(entry.getKey()+"出现了"+entry.getValue()+"次");
        }
    }

}

输出结果:

 a出现了7次
c出现了5次
d出现了8次
f出现了5次
i出现了1次
j出现了6次
k出现了7次
l出现了4次
n出现了7次
o出现了2次
s出现了6次
v出现了2次
w出现了1次
x出现了2次
z出现了1次

四、泛型方法:

1、作用:
(1)将运行时产生的异常转换为编译期的错误
(2)提高代码的健壮性

以筛选出值为偶数的键为例
代码如下:

public class Demon4 {
    public static void main(String[] args) {
        Map<String, Object> map=new HashMap<>();
        map.put("s", 1);
        map.put("a", 2);
        map.put("d", 3);
        map.put("e", 4);
        map.put("f", "星星");
        Set<Entry<String,Object>> entrySet = map.entrySet();
        for (Entry<String, Object> entry : entrySet) {
            Object value = entry.getValue();
            Integer val=(Integer)value;
            if(val%2==0) {
                System.out.println("偶数对应的key为:"+entry.getKey());
            }
        }
    }

}

输出结果:

 这里报错了,错误的意思是无法将string类型转换为int类型

但是如果定义了泛型,他会直接在编译时报错
代码如下:

 

 将泛型定义好之后,直接在编译时报错,一目了然。

五、集合框架工具包

1、Collections

排序:

 package com.xyl.mep;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
 
public class Dome5 {
    public static void main(String[] args) {
        
        List<User> list=new ArrayList<>();
        list.add(new User("aa", 16000));
        list.add(new User("bb", 12000));
        list.add(new User("cc", 26000));
        list.add(new User("dd", 14000));
        
    
        Collections.sort(list,new Comparator<User>(){
            public int compare(User o1, User o2) {
                // TODO Auto-generated method stub
                return o1.getQian()-o2.getQian();
            }
        });
        
        for (User u : list) {
            System.out.println(u);
        }
        
        String[] arr=new String[] {"a","b","c","d","e","f"};
        System.out.println(Arrays.toString(arr));
        
        List<String> asList = Arrays.asList(arr);
        System.out.println(asList);
        
        Integer[] ar = new Integer[] {1,7,3,6,5,4,2,8};
        Arrays.sort(ar);
        System.out.println(Arrays.toString(ar));
    }
}

 

输出结果:

 

2.Arrays
(1).toString
代码如下:

String[] arr=new String[] {"a","b","c","d"};

System.out.println(Arrays.toString(arr));

运行结果如下:
在这里插入图片描述

 

(2).asList

将数组变成集合来操作时,不能违背数组本身特点。

List<String> asList = Arrays.asList(arr);

 

(3).Sort

    Integer[] ar=new Integer[] {1,7,3,4,9 };
        Arrays.sort(ar);
         System.out.println(Arrays.toString(ar));

输出:

[1,3,4,7,9]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值