- List集合转化为Map。
/**
* List -> Map
* 需要注意的是:
* toMap 如果集合对象有重复的key,会报错Duplicate key ....
* apple1,apple12的id都为1。
* 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
*/
Map<Integer, Apple> appleMap = appleList.stream().collect(Collectors.toMap(Apple::getId, a -> a,(k1,k2)->k1));
结果:
{1=Apple{id=1, name='苹果1', money=3.25, num=10}, 2=Apple{id=2, name='香蕉', money=2.89, num=30}, 3=Apple{id=3, name='荔枝', money=9.99, num=40}}
- 提取对象集合的某个属性
/**
* 测试提取对象集合的某个属性
**/
@Test
public void testGetListObjectSet() {
List<SelectConfigModel> models = new ArrayList<>();
SelectConfigModel model1 = new SelectConfigModel();
model1.setId(1L);
SelectConfigModel model2 = new SelectConfigModel();
models.add(model1);
models.add(model2);
Set<Long> newIds = models.stream().map(SelectConfigModel::getId).collect(Collectors.toSet());
System.out.println(newIds);
}
参考: