JAVA 编程思想第11章--持有对象

Arrays.asList可把一个数组和一组用逗号隔开的元素组变成一个Arraylist,这个Arraylist是个视图,不能改变size,但是可以修改元素

2 Collection.addAll只接受Collection参数,而Collections.addAll接收参数列表

3 class Snow {}
class Powder extends Snow {}
class Light extends Powder {}
class Heavy extends Powder {}
class Crusty extends Snow {}
class Slush extends Snow {}

List<Snow> snow2 = Arrays.asList(new Light(), new Heavy()); 编译报错,因为无法确定Light和Heavy的准确类型,不要改成

List<Snow> snow4 = Arrays.<Snow>asList(new Light(), new Heavy()); 指定转化成Snow类型

4 hash容器是最优查找算法,tree是升序排序,linked是按照插入顺序排序

5 容器打印,Collection 和 Map接口直接可以打印


6 ArrayList擅长随机访问元素,linkedList擅长插入元素

_____________________________________________________________________________________________________

7 迭代器统一了对容器的访问方式

8 ArrayList 的 ListIterator. 

    List.listiterator()方法。默认先指向第一个元素的前一个位置,这方法可以带参数,改变第一次指向的位置

    Iterator的hasnext()判断是否具有下一个元素,Iterator.next()返回下一个元素,并且把位置下移一个位置

    Iterator.nextIndex()返回当前位置的下一个索引值;,Iterator.previousIndex()返回当前元素的索引值

    Iterator.set()可以修改当前指向元素的值

9 LinkedList  的 ListIterator. 

   LinkedList  得到第一个元素的方法,有getFirst(),element()和peek()方法,区别是,当为空是,peek返回的是null,其他两个函数报告异常

   LinkedList 删除第一个元素的方法,removeFirst(),remove()和poll()方法,都返回删除的那个元素,只是当为空是,poll返回null.其他报告异常

   LinkedList  在表头增加一个元素的方法,addFirst()和add()和offer(),区别是addFirst()返回void,而后两者返回boolean


   LinkedList  得到最后一个元素,有getLast()

   LinkedList   删除最后一个元素,有removeLast(),返回删除的元素

   LinkedList  添加最后一个元素,有addLast() ,返回void


   LinkedList 可以当做Queue来处理,其增 删 查相应接口是offer  remove,,poll  和peek element


  LinkedList 也可以单做Stack来处理,增 删 查相应接口是push peek和pop方法

_____________________________________________________________________________________________________

10 Queue

     LinkedList实现了Queue接口

     PriorityQueue优先级队列,当挑用remove poll 和peek时获取的是优先级最高的元素,

     PriorityQueued对String Integer和 Character类型做了优先级排序,用户如果需要自定义优先级,则需要Comparetor协助。

     new PriorityQueue(int size,Collections.reverseOrder())可以把序列反序____________________________________________________________________________________________________

11 数组和Collection都可以用forreach遍历,但是数组不能当做Iterator参数传递



  

  

猜你喜欢

转载自blog.csdn.net/xuxinyl/article/details/78282974