【java】兴唐第二十三节课(暑期第一节TreeSet)


预警:进入暑期培训的博主即将高产似母猪,敬请博友期待。
1、给类添加构造方法
alt + shift + s
选择Generate Construct using Fields

2、map两种遍历方法
方法一:
获取所有的key值,根据key值获取value值
代码实现:

Set keySet = map.keySet();
		for(Object key : keySet) {
			System.out.println(key + "----"  + map.get(key));	
		}
		//keySet:将所有的key值转化为Set

注:在HashMap里每一个key和value都是对应一个实体,数组里存储的就是这些实体
方法二:
通过将所有的数据转换为Entry对应的Set集合进行遍历

Set<Map.Entry> entrySet= map.entrySet();
		for(Map.Entry entry : entrySet) {
			System.out.println(entry.getKey() + "---->" + entry.getValue());
		}

3、使用泛型
代码实现:

public static void MapDemo1() {
		Map<String, Student> map = new HashMap<String, Student>();
		map.put("20181602", new Student("小强","20181602", 99));
		Set<Map.Entry<String, Student>> entry = map.entrySet();
		for(Map.Entry<String, Student> entrySet :entry) {
			String stuNo = entrySet.getKey();
			Student stu = entrySet.getValue();
			
		}

为什么entrySet有getKey和getValue方法而entry却没有?
写泛型的好处:
免去了类型转化的麻烦(如果不写泛型则需要用Object类型的变量来接收getKey和getValue传来的数据,如果想转化成自己想要的类型则需要用强制类型转化)

4、Entry是Map的内部接口而非子接口

5、接口是不能被实例化的但Set集合能声明接口类型的数据,在实际存储中,这个声明表示只要你是这个接口的实现类都可以存进去的,Set里存储的数据必须出Map.Entry的实现类实例化出来的对象

Set<Map.Entry<String, Student>> entry = map.entrySet();
return (es = entrySet) == null ? (entrySet = new EntrySet()) : es;

entrySet返回的是一个Set的实现类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值