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);// 深拷贝

 

posted @ 2020-05-17 21:34  Ghimtim  阅读(293)  评论(0编辑  收藏  举报