集合————Map

Map集合:双列型,存放数据无序,key不可重复,value可以重复
HashMap:底层是哈希表,。key不可重复,value可以重复。key对应的记录无序

/

package com.java.demo;

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

public class HashMap1 {
    public static void main(String[] args) {
        //Map bookMap=new HashMap();//没有指定的时候默认为Object类型
        Map<Integer,String> bookMap=new HashMap();
        //往集合中添加数据
        bookMap.put(1,"hhh哈哈哈");
        String value= bookMap.put(1, "sdhf后发送");//key一样,返回的是上一条的value
        System.out.println(value);//hhh哈哈哈
        //两个key一样时,会自动覆盖后面那条(sdhf后发送)    如果去掉bookMap.put(1,"hhh哈哈哈");这条
        //则value1的上一条没有值,没有值就返回null


        Map<Integer,String> boMap=new HashMap();
        boMap.putAll(bookMap);//把另一个集合添加进来

    }
}

/
/

package com.java.demo;

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

public class HashMap2 {
    public static void main(String[] args) {
        Map<Integer,String> bookMap =new HashMap();
        //往Map集合里添加数据
        bookMap.put(1,"大星");
        bookMap.put(2,"狗子");
        bookMap.put(3,"大头儿子");
        bookMap.put(4,"熊大");
        //获取数据
        //获取单个数据,根据key获取value;;若value没有值,则返回null
        String value1=bookMap.get(1);
        System.out.println("value1:"+value1);//value1:大星

        String value2=bookMap.get(3);
        System.out.println("value2:"+value2);//value2:大头儿子

        String value3=bookMap.get(10);
        System.out.println("value3:"+value3);//value3:null

        //判断Map集合中key或value是否存在(containsValue)、(containsKey)
        //判断bookMap中是否存在指定的value
        boolean falg1= bookMap.containsValue("大星");
        System.out.println("flag1="+falg1);//flag1=true
    }
}

/
遍历集合:
入遍历里不能使用外面定义的数据,所以要使用高级for循环

for(数据类型 变量名:集合名或数组名){}
/
Entry:条目(包含key和value)

List aList =new Set 或 ArrayList();
for(Entry temp:aList){}

for(Map.Entry<key类型,Value类型> entry:Map集合名.entrySet()){ //entry:Map集合名 此处的entry为变量名
Systen.out.println(entry);
}
/
/

package com.java.demo;

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

public class HashMap3 {
    public static void main(String[] args) {
        Map<Integer,String> bookMap =new HashMap();
        //往Map集合里添加数据
        bookMap.put(1,"大星");
        bookMap.put(2,"狗子");
        bookMap.put(3,"大头儿子");
        bookMap.put(4,"熊大");

        //遍历Map集合
        //bookMap.forEach((temp1,temp2)->{};
        //或者:
        bookMap.forEach((key,value)->{//集合里有多少条数据就会自动循环多少遍
            //System.out.println(key+","+value);
        });

        /*Set<Map.Entry<Integer, String>> entrySet = bookMap.entrySet();
        for (Map.Entry<Integer,String> entry:entrySet){
            System.out.println(entry);
        }*/
        for (Map.Entry<Integer,String> entry:bookMap.entrySet()) {
           // System.out.println(entry);
            //entry中有连个方法,分别获取key和value
            Integer key=entry.getKey();
            String value=entry.getValue();
            System.out.println(key+","+value);
        }

    }
}

/

package com.java.demo;

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

public class HashMap4 {
    //Character字符类型
    public static void main(String[] args) {
        Map<Character,Integer> charMap=new HashMap<>();
        charMap.put('a',23);
        charMap.put('b',54);
        charMap.put('c',34);
        charMap.put('d',44);
        for (Map.Entry<Character,Integer> entry:charMap.entrySet()){
            System.out.println(entry);
        }
       /* a=23
        b=54
        c=34
        d=44*/
    }
}

/
删除:由于HashMap底层是哈希表,就没有下标,只能通过key删除对应的整个条目记录

public static void main(String[] args) {
        Map<Character,Integer> charMap=new HashMap<>();
        charMap.put('a',23);
        charMap.put('b',54);
        charMap.put('c',34);
        charMap.put('d',44);
        //删除操作
        charMap.remove('c');
        for (Map.Entry<Character,Integer> entry:charMap.entrySet()){
            System.out.println(entry);
        }
       // a=23
       // b=54
      //  d=44

/
/
TreeMap:底层是二叉树。key不可以重复,value可以重复。可以根据key进行排序(key要实现Comparable、Comparator 接口才可以排序)
TreeMap方法与HashMap一样
TreeMap可以根据key进行排序,HashMap也可以,但是两者排的结果又不太一样
/
/

package com.java.demo;

import java.util.Map;
import java.util.TreeMap;

public class TreeMapDemo {
    public static void main(String[] args) {
        Map<String,Integer> tMap=new TreeMap();
        tMap.put("c",32);
        tMap.put("d",32);
        tMap.put("b",32);
        tMap.put("aa",32);
        tMap.put("a",32);
        tMap.put("ab",32);
        for (Map.Entry<String,Integer> entry:tMap.entrySet()){
            System.out.println(entry);
        }
       /* a=32
        aa=32
        ab=32
        b=32
        c=32
        d=32*/

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值