Java:容器(基本知识)

    容器基本的类型有:List, Set, Map, Queue。他们都是对象类型,也策划能够为集合类。Java中使用Collection来命名他们,故称之为容器。

    Collection:独立元素的序列,List 按照插入的顺序保存元素,Set 不能有重复元素,Queue 按照排队规则(先进先出)来保存元素。

    Map:保存键值对对象,允许按键来查找值。

    容器可以自动的调整自身的尺寸。

List:

有两种类型的List :Arraylist  , Linkedlist

    ArrayList:可以自动给扩充自身尺寸的数组,add()插入对象,get() 访问这些对象,size() 得到当前数组的大小。

    ArrayList<类型参数> :其中类型参数可以有多个, 没有尖括号的时候,是使用Java泛型来创建类,比较复杂,所以一般使用带有尖括号的类型参数来预定义,在List中,可以使用foreach来访问每一个元素。

    LinkedList :降低插入和删除的代价,增加随机访问的代价。

contains()-- 确定某个对象是否在List 中。 remove() 移除 。equals() 。subList() 允许从较大的List 中创建一个片段 。

retainAll() 

迭代器:Iterator    Iterator<Pets>  it = lists.iterator();   Pets a = it.next();  it.hasNext();

ListIterator 只能用于访问各种List ,比Iterator 更加强大。


LinkedList: 

删除插入增强,随机访问比ArrayList 变弱。增加使其用做栈,队列或者双端队列的方法。

Stack:后进先出(LIFO)

    push() 接受T类型的对象

    peek() 返回栈顶元素 pop() 返回栈顶元素并且移除它。



Set: 不保存重复元素,主要用在查询某个对象是否存在于某个Set 中,查找在Set 中比较重要,因此可以考虑构造HashSet ,他专门对查找做了优化。实际上Set 就是Collection ,只是行为不同。



Map: 

    Map< Person, List<?  extends Pet>> petPeople = new HashMap <Person ,List<? extends Pet>>();

 print(petPeople.keySet());  print(petPeople.values()); 

    for(Person person : petPeople.keySet()){

        for(Pet pet : petPeople.get(person)){

            print(pet);

        }}



Queue: 先进先出(FIFO) 

    offer() 将一个元素插入队尾OR 返回false ;

    peek() 和element() 在不移除的情况下返回队头元素,不同: 若队列为空,peek() 返回null, element() 抛出异常。

    poll() 和 remove() 移除并且返回队头,不同: 若队列为空 , poll()  返回null, remove() 抛出异常。

    自动包装机制会改变一些对象的类型来适应Queue 所需要的类型。

优先级队列:PriorityQueue 








猜你喜欢

转载自blog.csdn.net/QiwzDeBLOG/article/details/80630553