java基础——集合框架

Collection下的容器

1.Set

HashSet是最普通的set,仅能用来存储不同的数据

LinkedHashSet主要用来FIFO

TreeSet主要用来排序,所以不允许null(基本上等价于stl的set了,底层也是红黑树)

  TreeSet的两种排序方法:

    1.自然排序,让TreeSet<A>的A类去实现Comparable接口内的int CompareTo(A a)方法

            返回值0:元素相同,去重

             返回值1:顺序

          返回值-1:逆序

    2.比较器排序,单独创建一个比较类MyComparator,继承Comparator<T>泛型接口,重写int compare(T t1,T t2) 方法

            在创建TreeSet时把这个比较器丢到构造函数里去,TreeSet<T> ts = new TreeSet<T>( new MyComparator() );

          返回值处理同上

具体例子看这个

https://blog.csdn.net/zhangqunshuai/article/details/80660974

2.List

ArrayList:快速随机访问,地址连续

LinkedList:对顺序访问进行了优化,向List中间插入与删除的开销并不大,地址不连续,所以在开辟内存空间的时候不需要等一个连续的地址

      还具有下列方 法:addFirst(), addLast(), getFirst(), getLast(), removeFirst() 和 removeLast(),

      这些方法 (没有在任何接口或基类中定义过)使得LinkedList可以当作堆栈、队列和双向队列使用。

 Vector: 同步,线程安全的List,太老了一般不用?

关于Collection接口下的通用方法

boolean add(Object o)      :向集合中加入一个对象的引用 
 
void clear():删除集合中所有的对象,即不再持有这些对象的引用 
 
boolean isEmpty()    :判断集合是否为空 
 
boolean contains(Object o) : 判断集合中是否持有特定对象的引用 
 
Iterartor iterator()  :返回一个Iterator对象,可以用来遍历集合中的元素 
 
boolean remove(Object o) :从集合中删除一个对象的引用 
 
int size()       :返回集合中元素的数目 
 
Object[] toArray()    : 返回一个数组,该数组中包括集合中的所有元素 

Map下的容器

3.map

HashMap:最普通的map,使用hashCode()进行key->value快速查询,基于hash表实现,

  判不同时要同时重写equals方法和hashCode方法

  此外有keySet()方法返回键值集合

     entrySet()方法返回键值对集合

     Entry<K,V>为一个键值对,getKey方法得到键值,getValue方法得到值

  此外,自定义类要实现在map里判断不同,必须重载equals和hasCode方法,因为map是通过key对象得到hashcode,equals用来判key是否相等,在这基础上还要再判一次hashcode

  map用法 https://blog.csdn.net/qq_29373285/article/details/81487594

  底层原理 https://blog.csdn.net/woshimaxiao1/article/details/83661464

 

LinkedHashMap:使用 链表维护

TreeMap:内部元素按key以某种规则有序,排序规则参照TreeSet的排序方式(所以底层也是红黑树)

  TreeMap:https://www.jianshu.com/p/e11fe1760a3d

array:代表最普通的数组

Java中有一个Arrays类,专门用来操作array。

arrays中拥有一组static函数,
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。
原文地址:https://www.cnblogs.com/zsben991126/p/12149352.html