Java集合

集合(java.util.*):里面可以存放任意个对象的容器,该容器可以对里面的元素进行操作。

Collection:它是集合的根部接口。

  该接口下的子接口为:

  List:

    ArrayList

    LinkedList

    Vector

  Set:

    HashSet

    TreeSet

    LinkedHashSet

Collection下常见的方法是:

  add(Object o)  //添加元素

  remove(Object o)  //移除元素

  clear()  //清空元素

  size()  //获取容器的长度

  constains(Object o)  //判断容器中是否包含o元素

遍历Collection集合中元素可以使用增强循环(foreach) 和迭代器Iterator
  for(每个元素的类型 变量 : 集合名或者数组名){

  }

  Iterator iterator():返回迭代器接口
  Iterator接口下有两个方法:
  boolean hasNext():判读是否还有可迭代的元素
  Object next():获取迭代的元素

List:属于Collection接口的子接口
特点: 有序的,而且可以存放重复元素。
  add(int index, E element) :
  remove(int index); 根据下标删除元素。
  set(index,element);替换指定位置上的元素。
  get(index): 获取指定位置上的元素。
  List<E> subList(int fromIndex,int toIndex):截取list集合。

遍历集合List: 三种
1.根据下标

2.foreach

3.迭代器 iterator

Set:属于Collection接口的子接口
特点:无序的,元素不可以重复。
它的方法和父类一样.

ArrayList:
LinkedList:
Vector:
//80% 使用的是ArrayList

ArrayList , LinkedList和Vector的区别
他们都是List接口的实现类,但是ArrayList底层结构为数组结构,便于查找元素,不便于增加和删除元素。线程不安全,效率高。
LinkedList它的底层结构是一个链表结构,便于增加和删除,不便于查询。
Vector:底层结构也是数组结构,便于查找元素,不便于增加和删除元素。 线程安全,效率慢。

 

1.你有没有看过HashSet的源码?看过。如何进行元素的比较。
HashSet: 底层结构为哈希表,以哈希表先进行比较,如果哈希表相同,再判读equals方法是否相同。如果两者都相同视为同一元素。元素允许为null

2.TreeSet: 1.TreeSet中添加的元素类型要一致。 2.添加的元素必须具备可比性。
可比性:1.自然排序。该定义类可改。Comparable
2.定制排序。该类无法修改时,使用。Comparator

 

Collections: 集合的工具类。该类中所有的方法都是static方法。 可以操作集合。
static <T> int binarySearch(List<? extends Comparable<? super T>> list, T key) :
使用二叉搜索算法搜索指定对象的指定列表。
static void reverse(List<?> list)
反转指定列表中元素的顺序。
sort(List<T> list) :为list排序 前提T类型必须具备排序功能
sort(List<T> list,Comparator com) :

 

Map:接口。键值对集合。Map没有实现Collection接口
HashMap:
put(k,v);
size();
remove(k);
get(k);
keySet():获取map中所有的键。 返回Set集合类型。
遍历Map. 获取map中所有的键。 遍历所有的键。

HashTable和HashMap区别:
0.都是Map接口的实现类。
1.HashMap允许键值为null。HashTable不允许键值为null;
2.HashMap线程不安全,但是效率高,HashTable线程安全,但是效率低。

 

posted @ 2019-07-17 19:47  小成~  阅读(156)  评论(0编辑  收藏  举报