Java对应C++ STL的用法

sort:

1:java.util.Arrays中的静态方法Arrays.sort()方法,针对基本数据类型和引用对象类型的数组元素排序,对于字符串可以先转换为char[]数组后进行排序

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        return new ArrayList<>(Arrays.stream(strs)
                .collect(Collectors.groupingBy(
                        str -> {
                            char[] s = str.toCharArray();
                            Arrays.sort(s);
                            return new String(s);
                        }
                ))
                .values());
    }
}

2:java.util.Collections中的静态方法的Collections.sort()方法,针对集合框架中的动态数组,链表,树,哈希表等( ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、LinkedHashMap )进行排序。下面分别介绍两种用法。

Collections.sort(list,new Comparator<Integer>(){//升序排序
    public int compare(Integer str1,Integer str2){
        String s1=str1+""+str2;
        String s2=str2+""+str1;
        return s1.compareTo(s2);//变成-s1.compareTo(s2)就是降序排序了
    }
});

reverse:

对于集合,使用Collections.reverse()

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
Collections.reverse(list);

对于字符串,使用StringBuilder.reverse()

String str = "Hello, World!";
StringBuilder reversedStr = new StringBuilder(str).reverse();

ArrayList:

对应于C++的vector容器

#等价于vector<int>vec[maxn]
final static List<Integer>[]list=new ArrayList[MAXN];
static{
    for (int i = 0; i &l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值