“黑马程序员”-java集合笔记

来源:互联网 发布:手机怎么注册淘宝达人 编辑:程序博客网 时间:2024/06/05 05:10

---------------------- android培训,java培训、期待与您交流!----------------------


集合学习线路图:



List:存放有序,重复的元素的集合。

Set:存放无序,不重复的元素集合。

Map:以键,值对形式存放元素的集合。


List

  |--ArrayList:底层是数据结构是线性表(数组)结构,查找快,插入和删除慢。

  |--LinkedList:底层数据结构是链表,查找慢,插入和删除较快。

  |--vector:跟ArrayList一样,被ArrayLis所取代。

Set

  |--HashSet:底层数据结构是哈希表,线程不同步;

                         保证元素的唯一性:判断元素的hashcode是否相同,若果hashcode相同在次判断equals是否为ture。

 |--TreeSet:可以对set集合的元素进行排序。底层数据机构是二叉树,线程不同步。

                      保证元素的唯一性:判断comparaTo方法的返回值是否为0;

Map

  |--HashTable:底层数据机构是哈希表,不允许存放null Key和null Value。线程同步,效率低,jdk1.0。

  |--HashMap:底层数据机构是哈希表,允许存放null Key和null value。线程不同步,效率高,jdk1.2。

  |-TreeMap:可以对Map集合中的元素进行排序。底层数据机构是二叉树。线程不同步,效率高。




Iterator:迭代器,是集合的内部接口,用于遍历集合中的元素。

ListIterator:双向迭代器。是List集合中一个特殊的一个接口,它可以在遍历元素时对元素进行添加,删除,修改,获取索引,反向输出元素等操作。



Collections  工具类

使用该工具类操作集合,可以有效的减少代码的书写量。该类中有几个方法必须要掌握,以后开发都会用的上。


1.排序

static <T extends Comparable<? super T>> void  sort(List<T> list)   //对List集合中的元素按自然顺序排序
static <T> void  sort(List<T> list, Comparator<? super T> c)  //对立LIst集合中的元素按自定顺序排序


2.乱序

static void shuffle(List<?> list)  //随机打乱List集合中的元素


3.查找
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)


4.查找极值

static <T extends Object & Comparable<? super T>> T  max(Collection<? extends T> coll)        
static <T> T  max(Collection<? extends T> coll, Comparator<? super T> comp)

static <T extends Object & Comparable<? super T>> T  min(Collection<? extends T> coll)        
static <T> T  min(Collection<? extends T> coll, Comparator<? super T> comp)


5.组成
static boolean disjoint(Collection<?> c1, Collection<?> c2)   //判断两个集合中是否有相同元素。没有则返回true

static int frequency(Collection<?> c, Object o)


6.常规数据数据处理

static <T> boolean  addAll(Collection<? super T> c, T... elements)      //向集合中添加元素

static void reverse(List<?> list)                                                              //反转List集合中的元素
static <T> Comparator<T>  reverseOrder()                                          //逆转自然顺序
static <T> Comparator<T>  reverseOrder(Comparator<T> comp)       //逆转比较器

static <T> boolean  replaceAll(List<T> list, T oldVal, T newVal)          //替换list集合中的指定元素
static <T> void  fill(List<? super T> list, T obj)                                      //替换List中的所有元素
static <T> void  copy(List<? super T> dest, List<? extends T> src)     //复制List集合

static void swap(List<?> list, int i, int j)                                                   //交换List集合中元素的位置


7.线程同步集合

static <T> Collection<T>  synchronizedCollection(Collection<T> c)           
static <T> List<T>  synchronizedList(List<T> list)
static <T> Set<T>  synchronizedSet(Set<T> s)         
static <K,V> Map<K,V>  synchronizedMap(Map<K,V> m)




---------------------- android培训,java培训、期待与您交流!----------------------