TreeMap
- 底层是红黑树
- 添加速度和删除速度 高于
ArrayList
,比其他的都低; - 查询速度 高于
List
,低于Hash
- 如果对于存储的数据有排序的要求,首选
TreeMap
迭代元素
public static void main(String[] args) {
Map<String,String> mps = new HashMap<>();
mps.put("圣枪游侠", "奥巴马");
mps.put("皮城女警", "女警");
mps.put("德玛西亚", "大宝剑");
System.out.println(mps);
System.out.println("迭代所有的key:");
Set<String> keys = mps.keySet();
for(String key:keys) {
System.out.println(key+"="+mps.get(key));
}
- 获取Entry对象,通过getKey和getValue获取键和值
public static void main(String[] args) {
Map<String,String> mps = new HashMap<>();
mps.put("圣枪游侠", "奥巴马");
mps.put("皮城女警", "女警");
mps.put("德玛西亚", "大宝剑");
System.out.println(mps);
Set<Entry<String,String>> kvs = mps.entrySet();
for(Entry<String,String> entry:kvs) {
System.out.println(entry.getKey()+"="+entry.getValue());
}
存储自定义对象
- 1:要么自定义对象的所属类 实现了内部比较器Comparable接口 重写compareTo方法
@Override
public int compareTo(Hero o) {
return 1;
}
- 2:要么创建TreeMap对象是 指定外部比较器Comparetor接口 重写compare方法
public class Test05 {
public static void main(String[] args) {
MyCom m = new MyCom();
TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
});
treeSet.add("oracle");
treeSet.add("ajax");
treeSet.add("bootstrap");
treeSet.add("ejb");
treeSet.add("java");
System.out.println(treeSet);
}
}
class MyCom implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
return o1.length()-o2.length();
}
}
Collections
public static void main(String[] args) {
List<String> ls = new ArrayList<>();
Collections.addAll(ls, "xiao","wo","shi");
System.out.println(ls);
Collections.sort(ls);
System.out.println(ls);
System.out.println(Collections.binarySearch(ls, "shi"));
Arrays
public static void main(String[] args) {
String[] strs = new String[] {"5","2","3","4"};
List<String> ls = Arrays.asList(strs);
System.out.println(ls);
Arrays.sort(strs);
System.out.println(Arrays.toString(strs));
Object[] objs = ls.toArray();
System.out.println(Arrays.toString(objs));
}