数组初始化
Arrays.fill();
数组求和
Arrays.stream(nums).sum();
一. int[ ]转化
1.1、int[ ] 转 List< Integer >
public static void main(String[] args) { int[] arr = { 1, 2, 3, 4, 5 }; List list = Arrays.stream(arr).boxed().collect(Collectors.toList()); list.forEach(e -> System.out.print(e + " ")); }
- Arrays.stream(arr) 将int数组转化为IntStream
- boxed() 将每一个整数进行装箱,把IntStream 转换成了 Stream< Integer >
- collect(Collectors.toList()) 将对象流收集为集合,转化为 List< Integer >
1.2、int[ ] 转 Integer[ ]
Integer[] integers = Arrays.stream(arr).boxed().toArray(Integer[]::new);
- Arrays.stream(arr) 还是转化为流
- boxed() 装箱,将基本类型流转换为对象流
- toArray(Integer[ ]::new) 将对象流转换为对象数组
二、Integer[ ]转化
2.1、Integer[ ]转 int[ ]
int[] arr= Arrays.stream(integers).mapToInt(Integer::valueOf).toArray();
1.2 List转普通的int[]数组
2.2、Integer[ ]转 List
Integer[] integers = {1,2,3,4,5}; List list = Arrays.asList(integers);
三、List< Integer >
3.1、List< Integer > 转 Integer[ ]
Integer[] integers = list.toArray(new Integer[list.size()]);
3.2、List< Integer > 转 int[ ]
int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray(); array = ans.stream() .mapToInt(Integer::intValue) .toArray(); List转包装类数组
四、ArrayDeque与LinkedLIst
- 日常使用LinkedList快于ArrayDeque, 数据结构角度上, ArrayDeque基于数组的循环队列
- 实现Queue与Deque时,offer与add一个为null的数会报空指针异常
- ArrayDeque满时扩容需要消耗更多时间进行数组复制
五、两个List映射成一个Map
List<String> list1 = new ArrayList<>(Arrays.asList("aa", "bb", "cc", "dd", "ee"));
List<Double> list2 = new ArrayList<>(Arrays.asList(1.0, 2.0, 3.0, 4.0, 5.0));
Map<String, Double> map = IntStream.range(0, list1.size()).collect(HashMap::new, (m, i) -> m.put(list1.get(i), list2.get(i)), HashMap::putAll);