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