1、TreeMap:
1)、 概述
TreeMap 是一个有序的key-value集合,它是通过红黑树实现的
2)、 特点
-
键值对映射关系
-
一个键对应一个值
-
键不能重复,值可以重复
-
键允许为空值
-
元素有序(具体的排序规则有Comparable 或者 Comparator决定)
3)、 使用
import java.util.Map;
import java.util.TreeMap;
public class TreeMapDemo {
public static void main(String[] args) {
Map<String, String> map = new TreeMap<>();
map.put("zs", "zhangsan");
map.put("ls", "lisi");
map.put("ww", "wangwu");
// 添加不进去了,因为key值重复了
map.put("zs", "zhangshuai");
System.out.println(map);
}
}
2、HashTable:
1)、 概述
HashTable与HashMap是使用几乎一模一样
2)、 特点
存储数据的特点也是与HashMap一样
3)、 使用
当需要线程安全时,使用HashTable,否则使用HashMap
非线程安全 | 线程安全 |
---|---|
ArrayList | Vector |
HashMap | HashTable |
3、 collections工具类:
1)、 概述
类似数组工具类Arrays,集合工具类里面提供了很多静态的方法,能够通过类名直接调用。
2)、 常用的方法
方法名 | 说明 |
---|---|
public static void sort(List<T> list) | 将指定的列表按升序排序 |
public static void reverse(List<?> list) | 反转指定列表中元素的顺序 |
public static void shuffle(List<?> list) | 使用默认的随机源随机排列指定的列表 洗牌 |
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsDemo01 {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(5);
list.add(1);
list.add(4);
list.add(3);
list.add(21);
System.out.println("排序前:" + list);
Collections.sort(list);// 默认按照升序进行排列
System.out.println("排序后:" + list);
Collections.reverse(list);
System.out.println("反转后:" + list);
System.out.println("------------------------------");
List<String> list2 = new ArrayList<>();
list2.add("zhangsan");
list2.add("lisi");
list2.add("wangwu");
list2.add("zhaoliu");
System.out.println("排序前:" + list2);
Collections.sort(list2);// 默认按照升序进行排列
System.out.println("排序后:" + list2);
Collections.reverse(list2);
System.out.println("反转后:" + list2);
System.out.println("------------------------------");
// 打乱顺序
Collections.shuffle(list2);
System.out.println(list2);
}
}
3)、 指定规则排序
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class CollectionsDemo02 {
public static void main(String[] args) {
List<Student> list = new ArrayList<>();
list.add(new Student("zhangsan", 38));
list.add(new Student("lisi", 18));
list.add(new Student("wangwu", 21));
// 排序前
System.out.println("排序前:" + list);
// 采用匿名内部类的形式
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
int num = o1.getAge() - o2.getAge();
if(num == 0){
num = o1.getName().compareTo(o2.getName());
}
return num;
}
});
System.out.println("排序后:" + list);
}
}
本电子书目录:《Java基础的重点知识点全集》