第十七天

1、区别
TreeMap --底层:红黑树(一个节点存六个值)
HashTable --底层:哈希表(线程安全)
HashMap --底层:哈希表+红黑树 (非线程安全)
2、共同点
k-key V-value
Key键不能重复 value值可以重复
(注:value值不可以获取key键)
3、TreeMap的基本方法
① put 方法表示放入一个键值对,如果键已存在则覆盖,如果键不存在则
添加。
② get 方法表示key对应的value,get 方法的参数表示key,返回值表示value。
③ 要想获得Map 中所有的键,应该使用方法keyset(),该方法返回值类型为set。
④ 要想获得Map 中所有的值,应该使用方法values(),该方法返回值类型为collection。
⑤ 要想获得Map 中所有的键值对的集合,应该使用方法Entry(),该方法返回一个entry类型所组成的Set。
⑥ TreeMap的查询:

TreeMap<String,String> tm = new TreeMap<String,String>();
for(String key:tm.keySet()){
            System.out.print(key+" "+tm.get(key)+";");
        }
for (String value:tm.values()){
           System.out.print(value+"  ");
       }

3、泛型 TreeMap<String,String> tm = new TreeMap<String,String>;
4、在定义类中的属性时,要定义为引用数据类型,杜绝使用基本数据类型;
例题:
1、根据同一个value值找出其所有相应的key

import java.util.*;
public class Test2 {
	public static void main(String[] args) {
Map<String,String> map = new HashMap<String,String>();
	        map.put("1930","乌拉圭");
	        map.put("1934","意大利");
	        map.put("1954","德国");
	        map.put("1958","巴西");
	        map.put("1966", "英格兰");
	        map.put("1982","意大利");
	        Scanner sc = new Scanner(System.in);
	        String year = sc.next();
	        if(map.containsKey(year)){
	            System.out.println("世界杯冠军是"+map.get(year));
	        }else {
	            System.out.println("没有举办世界杯");
	        }
	        String g = sc.next();
	        boolean f = false;
	        for(String key:map.keySet()){
	            if(map.get(key).equals(g)){
	                f = true;
	                System.out.println(key);
	            }
	        }
	        if(!f){
	           System.out.println("没有获得过世界杯");
       }
	}
}

2、根据Set<Map.Entry<String,String>>、Set get(key))实行遍历

import java.util.*;
public class test {
	public static void main(String[] args) {
		 Map<String,String> map = new HashMap<String,String>();
	        map.put("Tom","java");
	        map.put("John","oracle");
	        map.put("Susan","oracle");
	        map.put("Jerry","jdbc");
	        map.put("Jim","unix");
	        map.put("Kevin","jsp");
	        Set<Map.Entry<String,String>> set = map.entrySet();
	        for(Map.Entry<String,String> m:set){
	        System.out.println(m.getKey()+":"+m.getValue());
       }
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值