Java集合类的操作笔记
最近在leetcode上刷题,使用Java丰富的类库,可以轻松地解决一些数据处理问题。这也算考验技术的基本功。
1、快速打印列表集合的元素
System.out.println(Arrays.toString(list.toArray()));
注意!如果没有为列表中的对象实现toString()方法,将得到正在观察的对象。
2、列表集合中元素排序
list.sort(new Comparator<String>() { @Override public int compare(Integer i1, Integer i2) { return i1 - i2; } });
以上为升序排序。
3、将数组转换到列表中
Collections.addAll(list, array);
如果数组的元素为基本类型,而列表元素是对应的包装类型的话,使用如下的转化方式。
List<Integer> list = Arrays.stream(array).boxed().collect(Collectors.toList());
4、遍历Map
- 遍历Map中的键值对
1 for(Map.Entry<String, String> entry : map.entrySet()){ 2 ... 3 String key = entry.getKey(); 4 String value = entry.getValue(); 5 ... 6 }
- 遍历Map中的键
1 for(String key : map.keySet()){ 2 ... 3 }
- 遍历Map中的值
1 for(String value : map.values()){ 2 ... 3 }
5、判断列表集合是否为另一列表集合的子集
1 boolean result = bigList.containsAll(smallList);
6、数组全部初始为一个值
1 Arrays.fill(array, -1);
7、比较两个long、double值(String也能比较)
int i = Long.compare(long1, long2);// 等于0,相等;小于0,升序;大于0,降序 int j = Double.compare(double1, double2);
int k = String.compare(string1, string2);
8、long型也溢出,用BigDecimal,比较如下
int i = bigdemical.compareTo(bigdemical1)// 等于0,相等;小于0,升序;大于0,降序
9、数组的浅拷贝&深拷贝
1 List<T> list = Arrays.asList(array);// 浅拷贝,array改变,list也会改变 2 T[] a = array.clone();// 浅拷贝 3 Collections.addAll(list, array);// 深拷贝