zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java笔记:流式编程 数组与List集合互转

2023-09-14 09:06:28 时间

 


 

别再用for循环了。借助org.apache.commons.lang.ArrayUtils更优雅! 

数组转集合:long[]转List<Long>

import org.apache.commons.lang.ArrayUtils;

long[] array_long = {1L, 2L, 3L};
//装箱,把基本类型数组转成对应的包装类数组
Long[] array_Long = ArrayUtils.toObject(array_long);
return Arrays.asList(array_Long);

 

集合转数组:List<Long>转long[]


import org.apache.commons.lang.ArrayUtils;
long[] array_long = ArrayUtils.toPrimitive(array_Long);



要根据一个List<Entity>,得到entity的id的集合。可以使用流式编程的mapToLong方法;同样如果得到其他数据类型的集合,可以使用mapToDouble、mapToInt等。

long[] array_long = entList.stream().mapToLong(Enterprise::getEnterpriseId).toArray();

 


要对数组做流式编程,可以先通过Arrays.stream(localEnterpriseIdList)将数组转换成Stream对象。

 


 

List<Long>转List<String>

List<Long> l1 = Arrays.asList(1L, 3L, 2L);
List<String> strings = l1.stream().map(String::valueOf).collect(Collectors.toList());

 


 对List<Long>进行排序

import java.util.Collections;
Collections.sort(l2);

 


将List<Long>里的数字转换成用","分割的字符串 

List<Long> l1 = Arrays.asList(1L, 3L, 2L);
String join = String.join(",", l1.stream().map(String::valueOf).toArray(String[]::new));

 


 

删除map中符合条件的元素

方法一:loop

Map<String, String> map = Maps.newHashMap();
Iterator<String> iterator = map.keySet().iterator();
while (iterator.hasNext()) {
    String key = iterator.next();
    if (!custFlags.contains(key)) {
        iterator.remove();
    }
}

 

方法二:利用java.util.Collections#removeIf(java8中新增的方法)

Map<String, String> map = Maps.newHashMap();
map.keySet().removeIf(key -> !custFlags.contains(key));