TreeMap基本使用

阅读: 评论:0

TreeMap基本使用

TreeMap基本使用

1.TreeMap简单介绍

        TreeMap是一个有序的key-value集合,是非线程安全的,基于红黑树(Red-Black tree)实现。其映射根据键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。

当自定义比较器时,需要自定义类实现java.lang.Comparable接口,并重写compareTo()方法。

2.TreeMap基本使用

根据键的自然顺序进行排序

public static void main(String[] args) {Map map = new TreeMap<>();map.put("name", "zzc");map.put("age", "18");map.put("sex", "m");map.put("name", "wzc");map.put("angle", "yhp");System.out.println(map);
}

如何排序呢?进入到TreeMap中的put(key, value)

cmp = kpareTo(t.key);

通过Comparable中的compareTo()方法进行排序的。

这里的key是String类型的,String类实现了Comparable接口并且重写了compareTo()方法:

public int compareTo(String anotherString) {int len1 = value.length;int len2 = anotherString.value.length;int lim = Math.min(len1, len2);char v1[] = value;char v2[] = anotherString.value;int k = 0;while (k < lim) {char c1 = v1[k];char c2 = v2[k];if (c1 != c2) {return c1 - c2;}k++;}return len1 - len2;
}

字符串比较大小就是通过比较字符串中的字符大小,这样就可以实现排序。

【注意】:如果TreeMap中存储的元素是自定义类并且没有实现Comparable接口会怎么样?下面就尝试一下:
自定义一个User类:

public class User {private Integer age;private String name;private String email;public User(Integer age, String name, String email) {this.age = age;this.name = ail = email;}
}

测试类:

public class 

本文发布于:2024-01-30 19:12:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170661332922219.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:TreeMap
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23