java笔记:流式编程 数组与List集合互转
别再用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));
当看到一些不好的代码时,会发现我还算优秀;当看到优秀的代码时,也才意识到持续学习的重要!--buguge
本文来自博客园,转载请注明原文链接:https://www.cnblogs.com/buguge/p/12712143.html