Java8-05

举报
kwan的解忧杂货铺 发表于 2024/08/31 13:43:57 2024/08/31
【摘要】 1.抽取对象属性List<Integer> ids = taskRecordDOList.stream().map(TaskRecordDO::getId).collect(Collectors.toList()); 2.obj2objList<DayStoreSkuSizeInvSalDTO> dtos = sizeInvSalList.stream() ....

1.抽取对象属性

List<Integer> ids = taskRecordDOList.stream().map(TaskRecordDO::getId).collect(Collectors.toList());

2.obj2obj

List<DayStoreSkuSizeInvSalDTO> dtos = sizeInvSalList.stream()
                .map(item -> {
                    DayStoreSkuSizeInvSalDTO dayStoreSkuSizeInvSalDTO = new DayStoreSkuSizeInvSalDTO();
                    BeanUtil.copyProperties(item, dayStoreSkuSizeInvSalDTO);
                    return dayStoreSkuSizeInvSalDTO;
                }).collect(Collectors.toList());

3.属性转 set

转set:

final Set<String> sizeCodes = sizeInvSalList.stream().map(DayStoreSkuSizeInvSalDO::getSizeCode).collect(Collectors.toSet());

筛选转set:

final List<String> genderName = pageQuery.getGenderName();
        if (CollectionUtils.isNotEmpty(genderName)) {
            tags = tags.stream().filter(t -> genderName.contains(t.getGenderName()))
                    .collect(Collectors.toList());
        }

4.list2list

Map<Object, List<Student>> mapGroup = list.stream().collect(Collectors.groupingBy(v ->             v.getName() + v.getAge()));
List<List<Student>> categorys = new ArrayList<>(mapGroup.values());

5.toMap 重复 key

Map<Date, TimeAxisDTO> collect6 = timeAxisDTOListB.stream().collect(Collectors.
  toMap(TimeAxisDTO::getPeriodSdate, timeAxisDTO -> timeAxisDTO, (key1, key2) -> key1));

6.array2List

/**
 * 数组转list  Arrays.asList不能add
 *
 * @author : kwan
 * @version : 1.0.0
 * @date : 2022/8/10 00:21
 */
public class Basic_collection_10_Array2List_01 {

  public static void main(String[] args) {
    String[] strArray = new String[2];
    List list = Arrays.asList(strArray);
    //对转换后的list插入一条数据
    list.add("1");
    System.out.println(list);
  }
}
/**
 * 数组转list
 *
 * @author : kwan
 * @version : 1.0.0
 * @date : 2022/8/10 00:21
 */
public class Basic_collection_10_Array2List_02 {
    public static void main(String[] args) {
        String[] strArray = new String[2];
        ArrayList<String> list = new ArrayList<String>(Arrays.asList(strArray));
        list.add("1");
        System.out.println(list);
    }
}
/**
 * 数组转list
 *
 * @author : kwan
 * @version : 1.0.0
 * @date : 2022/8/10 00:21
 */
public class Basic_collection_10_Array2List_03 {

    public static void main(String[] args) {
        String[] strArray = new String[2];
        ArrayList< String> arrayList = new ArrayList<String>(strArray.length);
        Collections.addAll(arrayList, strArray);
        arrayList.add("1");
        System.out.println(arrayList);
    }
}

7.map2list

需要将 map 打平转为 list

  final List<StoreSkuInvSalDTO> sal = groupName_2_salDatas.values().stream()
                .flatMap(x -> x.getProducts().stream())
                .collect(Collectors.toList());

8.List&String&Set 互转

//list转string
String str= String.join("','", list);

//list转set
Set<String> set = new HashSet<>(skuList);

//set转list
List<String> list = new ArrayList<>(set);

9.arrays2str

默写关键点

  • mapToObj
  • collect
  • Collectors
int[] res = {1, 2, 3, 4, 5};
final String collect = Arrays.stream(res).mapToObj(String::valueOf).collect(Collectors.joining(""));
        System.out.println(collect);
//StringBuilder低效写法
int[] res = {1, 2, 3, 4, 5};
StringBuilder sb = new StringBuilder();
for (int i : res) {
    sb.append(i);
}
String result1 = sb.toString().trim();
System.out.println(result1);
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。