「java高效有序集合」有序的集合
本篇文章给大家谈谈java高效有序集合,以及有序的集合对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
JAVA集合框架的有序数组
一旦数组排完序,你就能用Arrays.binarySearch()进行快速查询了。但是切忌对一个尚未排序的数组使用binarySearch();因为这么做的结果是没意义的。
如果Arrays.binarySearch()找到了,它就返回一个大于或等于0的值。否则它就返回一个负值,而这个负值要表达的意思是,如果你手动维护这个数组的话,这个值应该插在哪个为止。这个值就是:
-(插入点)-1
“插入点”就是,在所有“比要找的那个值”更大值中,最小的那个值的下标,或者,如果数组中所有的值都比要找的值小,它就是a.size()。
如果数组里面有重复元素,那它不能保证会返回哪一个。这个算法不支持重复元素,不过它也不报错。所以,如果你需要的是一个无重复元素的有序序列的话,那么可以考虑使用本章后面所介绍的TreeSet(支持【排序顺序“sorted order”】)和LinkedHashSet(支持【插入顺序“sorted order”】)。这两个类会帮你照看所有细节。只有在遇到性能瓶颈的时候,你才应该用手动维护的数组来代替这两个类。
如果排序的时候用到了Comparator(针对对象数组,primitive数组不允许使用Comparator),那么binarySearch()的时候,也必须使用同一个Comparator(用这个方法的重载版)。
java中,怎么样得到一个有序的map集合?
hashmap是没有顺序的,有顺序的一般没人这么用的,都是通过list来进行确定顺序的对象添加的。因为list是有顺序的,先add的编号就小(从0开始),举例: List list = new linkedList(); list.add("0"); list.add("1"); 结果就是:list.get(1) =1;
java有序集合
无序集: Set
有序集: List
所以,凡是实现set的AbstractSet, CopyOnWriteArraySet, EnumSet, HashSet, JobStateReasons, LinkedHashSet, TreeSet
都是无序的
凡是实现List的
AbstractList, AbstractSequentialList, ArrayList, AttributeList, CopyOnWriteArrayList, LinkedList, RoleList, RoleUnresolvedList, Stack, Vector
都是有序的
呵呵
对于补充
Map是根据key来存储的
所以,从这个角度讲,是有序的
关于java高效有序集合和有序的集合的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。