string转map集合_Map、斗地主案例

一、Map方法

import java.util.HashMap;
import java.util.Map;
public class Demo01 {
    public static void main(String[] args) {
        show01();
        show02();
        show03();
        show04(); }
    private static void show04() {
        Map<String,Integer> map3 = new HashMap<>();
        map3.put("董",18);
        map3.put("皓",16);
        map3.put("宇",15);
        boolean m = map3.containsKey("皓");
        boolean m1= map3.containsKey("帅");
        System.out.println(m);//true
        System.out.println(m1);//false
        }
    private static void show03() {
        Map<String,Integer> map2 = new HashMap<>();
        map2.put("董",18);
        map2.put("皓",16);
        map2.put("宇",15);
        Integer m = map2.get("皓");
        System.out.println(m);//16
        }
    private static void show02() {
        Map<String,Integer> map1 = new HashMap<>();
        map1.put("董",18);
        map1.put("皓",16);
        map1.put("宇",15);
        Integer m = map1.remove("宇");
        System.out.println(m);//15
        }
    private static void show01(){
        Map<String,String> map = new HashMap<>();
        String m1 = map.put("董","皓");
        String m2 = map.put("董","宇");
        System.out.println(m1);//null
        System.out.println(m2);//返回的是被替换的值:皓
        System.out.println(map);//{董=宇}
    }
}

Map集合遍历的两种方式

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

public class Demo02 {
    public static void main(String[] args) {
        Map<String,Integer> map = new HashMap<>();
        map.put("董",18);
        map.put("皓",16);
        map.put("宇",15);
        //1.先用keySet把Key值取出来,然后放在set集合中
        Set<String> set = map.keySet();
        //2.遍历set集合获取每一个key
        for (String name : set) {
            //3.用get()找到value
            Integer value = map.get(name);
            System.out.println(name+"="+value);
        }
        System.out.println("======================");
        //用第二种方法来遍历,entrySet方法。
        Set<Map.Entry<String, Integer>> ent1 = map.entrySet();
        for (Map.Entry<String, Integer> entry : ent1) {
            String name = entry.getKey();
            Integer values = entry.getValue();
            System.out.println(name+"="+values);
            
        }
    }
}

二、HashMap存储自定义类型键值

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

public class Demo03 {
    public static void main(String[] args) {
        show01();
    }
    private static void show01(){
        HashMap<Person, String> map = new HashMap<>();
        map.put(new Person("董",18),"益阳");
        map.put(new Person("董",19),"株洲");
        map.put(new Person("董",20),"深圳");
        map.put(new Person("董",18),"地球");
        Set<Map.Entry<Person, String>> set = map.entrySet();
        for (Map.Entry<Person, String> entry : set) {
            Person key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+"="+value);
            //如果在person类里面添加了equals()和hashCode()方法后,会出现⬇️
            //Person{name='董', age=18}=地球
            //Person{name='董', age=19}=株洲
            //Person{name='董', age=20}=深圳
        }
    }
}

三、LinkedHashMap

HashMap key值不允许重复,并且无序,values允许重复。

LinkedHashMap key值不允许重复,有序

四、Hashtable

不能存储空值和空键。

五、作业:计算一个字符串中每个字符出现的次数

import java.util.HashMap;
import java.util.Scanner;

public class Demo04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串");
        String str = sc.next();
        //1.创建一个HashMap的集合,Key是字符串的字符,Values是字符的个数
        HashMap<Character, Integer> map = new HashMap<>();
        //2.遍历字符串获取每一个字符
        for (char c : str.toCharArray()) {
            //3.判断key是否存在
            if(map.containsKey(c)){
                //存在的话
                Integer value = map.get(c);
                value++;
                map.put(c,value);
            }else{
                    map.put(c,1);
            }
            }
            //4.遍历Map输出结果
        for (Character key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key+"="+value);

        }
    }
}

六、Debug调试程序

1e5c15a3735ceb40e1593e8b950bde77.png

七、斗地主案例

0ed7bb612fa2dc645596871ec61af6e3.png

09b71a7a5cd4f6d3137b7bb317a03289.png

0e4a0c3e7d04facc1cdd2e12c44e368b.png

754aec3deb432c1a889b3f9a345bc628.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值