------- android培训、java培训、期待与您交流! ----------
对集合中的关系及特性的简单小结:
Collection (是接口,不断向上抽取的顶层父类,是集合框架)
丨----List 集合,元素是有序的,元素可以重复,因为该集合体系有索引
丨----ArrayList:底层的数据结构是数组结构,其查询速度快,但是增删稍慢,线程是不同步的。
丨----LinkedList:底层使用的是链表数据结构,增删速度快,但查询稍慢。
丨----Vector:底层是数组数据结构,线程是同步的。
丨----Set集合,元素是无序的,元素不可以重复
丨----HashSet:底层数据结构是哈希表,线程是不同步的。
丨----TreeSet:用于对集合中的元素进行排序。
Map (该集合用于存储键值对。而且键是唯一的。)
丨----HashTable:底层数据结构是哈希表,不可以存入null键和null值。该集合线程是同步的,效率低。
丨----HashMap:底层是哈希表数据结构,允许使用null键和nul值,该集合线程是不同步的,效率高。
丨----TreeMap:底层是二叉树数据结构。线程是不同步的,用于给Map集合排序。
Collection与Collections的比较:
Collection 是接口,不断向上抽取的顶层父类,是集合框架。
Collections(集合工具类)把非同步集合转成同步集合。
Collections里面的一些操作集合的方法,也就是用来操作集合的:
1,static void sort(List):可以对List集合中的元素进行排序。
static
<T extends Comparable<? super T>> void
sort(List<T> list) 根据元素的自然顺序 对指定列表按升序进行排序。
static
<T> void
sort(List<T> list, Comparator<? super T> c) 根据指定比较器产生的顺序对指定列表进行排序。
只能对List集合用sort方法排序。
2,二分查找:
static
<T> int
binarySearch(List<? extends Comparable<? super T>> list, T key) 使用二分搜索法搜索指定列表,以获得指定对象。
static
<T> int
binarySearch(List<? extends T> list, T key, Comparator<? super T> c) 使用二分搜索法搜索指定列表,以获得指定对象。
只能对List集合二分查找。
static int binarySearch(list,key):
可以对list集合进行二分查找(折半查找).注意: 被查找的list集合中的元素必须有一个具体顺序。有序并不是指存入和取出的顺序,指的是元素必须按照指定的方式排序。
3,static void fill(list,obj):将list集合中的元素都替换成指定元素obj.
4,static Object max(Collection):获取Collection集合中的最大值。
根据自然顺序获取最大值,还有可以根据指定的比较器所产生的顺序获取最大值。
static
<T> T
max(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定比较器产生的顺序,返回给定 collection 的最大元素。
static Object min(Collection):获取Collection集合中的最小值。
static
<T> T
min(Collection<? extends T> coll, Comparator<? super T> comp) 根据指定比较器产生的顺序,返回给定 collection 的最小元素。
根据比较器所产生的顺序获取最小值。
5,static boolean replaceAll(List,old,new):对list集合中的指定元素进行替换。
6,static void reverse(list):对list集合中的元素进行反转。
7,static void shuffle(list):对list集合中的元素进行位置随机置换。
8,
static
<T> Comparator<T>
reverseOrder() 返回一个比较器,它强行逆转实现了 Comparable 接口的对象 collection 的自然顺序。
static
<T> Comparator<T>
reverseOrder(Comparator<T> cmp) 返回一个比较器,它强行逆转指定比较器的顺序。
static Comparator reverseOrder():对具备比较性的元素排序,进行顺序的逆转。
static Comparator reverseOrder(comparator):对指定的比较器进行顺序的逆转。TreeSet<String> ts = new TreeSet<String>(Collections.reverseOrder(new ComparatorByLength()));