java 三种将list转换为map的方法详解

list转换成Map的三种方法

博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

/**
 * 科目实体类
 */
public class Subject
{
	private Integer id;
	private String subjectName;
	public Subject(Integer id, String subjectName){
		super();
		this.id = id;
		this.subjectName = subjectName;
	}
	public Integer getId(){
		return id;
	}
	public void setId(Integer id){
		this.id = id;
	}
	public String getSubjectName(){
		return subjectName;
	}
	public void setSubjectName(String subjectName){
		this.subjectName = subjectName;
	}
}
public class ListToMap
{
public static void main(String[] args)
	{
		List<Subject> list = new ArrayList<>();
		Subject sub1 = new Subject(1,"语文"); 
		Subject sub2 = new Subject(2,"数学"); 
		Subject sub3 = new Subject(3,"英语"); 
		list.add(sub1);
		list.add(sub2);
		list.add(sub3);
		//方法一 for循环,创建一个Map集合  使用put(key,value)方法
		Map<Integer,Subject> subMap = new HashMap<>();
		for(Subject sub : list){
			subMap.put(sub.getId(), sub);
		}
		
		//方法二使用guava工具类
		Map<Integer, Subject> subMap2 = Maps.uniqueIndex(list, new Function<Subject, Integer>() {
            @Override
            public Integer apply(Subject sub) {
                return sub.getId();
            }
		});
		
		//方法三使用java8流形式
		Map<Integer, Subject> appleMap = list.stream().collect(Collectors.toMap(Subject::getId, a -> a,(k1,k2)->k1));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值