Java8的集合操作常用方法

  1. List集合转化为Map。
/**
 * List -> Map
 * 需要注意的是:
 * toMap 如果集合对象有重复的key,会报错Duplicate key ....
 *  apple1,apple12的id都为1。
 *  可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2
 */
Map 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}}
  1. 提取对象集合的某个属性
   /**
    * 测试提取对象集合的某个属性
    **/
   @Test
   public void testGetListObjectSet() {
       List models = new ArrayList<>();
       SelectConfigModel model1 = new SelectConfigModel();
       model1.setId(1L);
       SelectConfigModel model2 = new SelectConfigModel();
       models.add(model1);
       models.add(model2);
       Set newIds = models.stream().map(SelectConfigModel::getId).collect(Collectors.toSet());
       System.out.println(newIds);
   }

参考:

  1. java8–List转为Map、分组、过滤、求和等操作

你可能感兴趣的:(java,集合)