黑马程序员——集合笔记

来源:互联网 发布:淘宝大学商学院杭州 编辑:程序博客网 时间:2024/06/08 05:43

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

java集合笔记

<img src="http://img.blog.csdn.net/20151227165114287?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

一、定义:用来存放不同类型的对象,长度是可以变的

connection有两个子类:List,Set

list(允许元素重复),set(不允许元素 重复)

List的子类:ArrayList,LinkedList,Vector

Set的子类:HashSet,TreeSet

为什么会出现这么多容器呢?

因为每一个容器对数据的存储方式不同,这个储存方式叫:数据结构。

ArrayList集合:

创建集合:

ArrayList al=newArrayList();

 

二、集合中的常用方法:

add();添加元素

add方法参数类型都是Object 便于接收任何类型对象,并且集合中存储的都是引用地址。

size();获取长度

remove();删除

clear();清空集合

contains(obj);判断集合是否存在参数中的元素

isEmpty();判断是否为空

retainAll(List);获取这两个集合的交集

removeAll(list);把两个集合的交集去掉

 

三、元素的迭代输出Iterator

         Iteratorit=al.iterator();创建一个迭代器it

当集合中有元素的时候,取出集合中的元素

         while(it.hasNext()){

                   it.next();

}

每个集合的数据结构不同,取出的方式不同,所以定义 了一个内部类,用于取出集合元素,这些取出元素的动作都有一个共性:判断、取出,所以把取出方式进行共性抽取,所以抽取出来定义成了一个接口,Iterator。通过iterator()方法可以获取这个取出对象的类,然后用这个类进行取出元素。这就是内部类设计的好处

另外一种写法:

for(Iterator it=al.iterator();it.hasNext();){

         it.next();

      }这种写法迭代输出,循环完之后内存释放了,而while循环之后it的对象还在内存,所以,对于内存优化来说,写for循环比较好

        

四、List集合特有的迭代器ListIterator,它是Iterator的子接口

         在迭代时,不可以通过集合对象的方法操作集合的元素,所以在迭代时,只能用迭代器的方法操作元素。

         ListIteratorli=al.listIterator();这个迭代器增删改查都有,所以这个类出现以后就可以在遍历过程中进行增删改查了

五、Vector 的迭代器Enumeration

         Enumeration和Iteratro的用法类似用while循环迭代集合内容。枚举和迭代一样的,只不过枚举的方法名字太长了

六、LinkedList特有方法

addFirst()把元素添加到第一个

addLast();把元素添加到最后一个

getFirst();得到第一个元素

getLast();得到最后一个元素

removeFirst()移除第一个

removeLast();移除最后一个

pollFirst()方法可以代替removeFirst()方法,如果集合没有元素,可以返回null值

peekFirst代替getFirst,如果集合没有元素,可以返回null值

offerFirst代替addFirst,

而add,get,remove,没有元素会抛异常

 

0 0
原创粉丝点击