Java 集合 (Collections、Arrays)
Collections
- Collections是集合框架中的一个工具类。该类中的方法都是静态的。
Collections 常用方法
- swap(List<?> list, int i, int j) 交换指定列表中指定位置的元素。
- sort(List
list) 根据其元素的natural ordering对指定的列表进行排序。 - max(Collection<? extends T> coll) 根据其元素的自然排序返回给定集合的最大元素。
- min(Collection<? extends T> coll) 根据其元素的 自然顺序返回给定集合的最小元素。
- sort(List
list, Comparator<? super T> c) 根据指定的比较器引起的顺序对指定的列表进行排序。 - reverse(List<?> list) 反转指定列表中元素的顺序。
- replaceAll(List
list, T oldVal, T newVal) 将列表中一个指定值的所有出现替换为另一个。
import java.util.*;
class CollectionsDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("abcd");
list.add("za");
list.add("an");
list.add("njjs");
list.add("za");
sop(list);
Collections.swap(list, 0, 1);//交换元素
sop(list);
Collections.sort(list);//排序
sop(list);
sop(Collections.max(list));//返回最大元素
sop(Collections.min(list));//返回最小元素
Collections.sort(list, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
sop(list);
Collections.reverse(list);//反转列表中元素的顺序
sop(list);
Collections.replaceAll(list, "za", "aa");//替换列表中所有出现的指定的值
sop(list);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
运行结果:
[za, abcd, an, njjs, za]
[abcd, an, njjs, za, za]
za
abcd
[an, za, za, abcd, njjs]
[njjs, abcd, za, za, an]
[njjs, abcd, aa, aa, an]
- reverseOrder(Comparator
cmp) 返回一个比较器,它强制指定比较器的反向排序。
import java.util.*;
class CollectionsDemo {
public static void main(String[] args) {
TreeSet<String> list = new TreeSet<String>();
list.add("abcd");
list.add("za");
list.add("an");
list.add("njjs");
TreeSet<String> list1 = new TreeSet<String>(Collections.reverseOrder());
list1.add("abcd");
list1.add("za");
list1.add("an");
list1.add("njjs");
//按字符串长度排序
TreeSet<String> list2 = new TreeSet<String>(Collections.reverseOrder(new Comparator<String>() {
public int compare(String s1, String s2) {
if(s1.length() > s2.length()){
return 1;
}
if(s1.length() < s2.length()){
return -1;
}
return s1.compareTo(s2);
}
}));
list2.add("abcd");
list2.add("za");
list2.add("an");
list2.add("njjs");
sop(list);
sop(list1);
sop(list2);
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
运行结果:
[abcd, an, njjs, za]
[za, njjs, an, abcd]
[njjs, abcd, za, an]
Arrays
- 用于操作数组的工具类。里面都是静态方法。
Arrays常用方法
- asList(T... a) 返回由指定数组支持的固定大小的列表。(将数组变成list集合)
- 把数组变成list集合有什么好处?
可以使用集合的思想和方法来操作数组中的元素。 - 注意:将数组变成集合,不可以使用集合的增删方法。因为数组的长度是固定。
如果你增删。那么会产生UnsupportedOperationException报错
- 把数组变成list集合有什么好处?
import java.util.*;
class ArraysDemo {
public static void main(String[] args) {
Integer[] nums = {2, 4, 5};
List<Integer> li = Arrays.asList(nums);//数组转集合
sop(li);
Integer[] arr = li.toArray(new Integer[li.size()]);//集合转数组
sop(Arrays.toString(arr));
}
public static void sop(Object obj) {
System.out.println(obj);
}
}
运行结果:
[2, 4, 5]
[2, 4, 5]