java的集合

gassion永刚、期待与您交流! ----------

集合框架 

为什么出现集合类?

   面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

数组和集合类同是容器,有什么不同?

数组虽然也可以存储对象,但是长度是固定的;集合长度是可变的。

数组中可以存储基本数据类型,集合只能存储对象。

集合的特点

  集合只用于存储对象,集合长度是可变的,集合可以存储不同该类型的对象。

Connection接口最顶层的集合是个不能创建对象。

   |--List:元素是有序的,元素可以重复。因为该集合体系有索引。

     |--ArrayList:底层的数据结构使用时数组结构

                  特点:查询速度很快,但是增删很慢。线程不同步 

     |--LinkedList:底层使用的数据结构使用链表结构

                  特点:但是增删很快,查询速度很快慢 

     |--Vector:底层是数组数据结构。线程同步

   |--Set:元素是无序,元素不可以重复。

 

创建一个集合容器,使用Connection接口的子类。ArraryList

ArrayList al=new ArraryList();

//1.添加元素

al.add(“java1“);//add方法的参数类型是Object,以便于接收

//意类型对象。集合中存储的都是对象的引用(地址)

al.add(“java2“);

//删除元素

al.remove(“java1”);

//清空集合

al.clear();

//判断元素

al.contains(“java2”);

al.isEmpty();//判断集合是否为空?

retainAll()//两个集合取交集

removeAll()// 删除集合里面包含的元素

取出集合的元素(迭代器)Iterator接口

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

 System.out.println(it.next())

}

l  List子接口

ArryList特点:元素是有序的,元素可以重复。因为该集合体系有索引。

ArryList:特有方法。凡是可以操作角标的方法都是该体系特有的方法。

增元素

add(int index,E  element)//指定位置添加元素

addAll(int index,Connection )

删元素

remove(int index)

 

改元素

Set(int index,E  element);//修改指定元素

查元素

get(int index);

subList(int fromIndex, int toIndex);

listIterator();//列表迭代器

listIterator是集合的特有迭代器

在迭代时,不可以通过集合对像的方法操作集合中的元素。

因为会发生java.util.ConcurrentModificationException异常。 

所以,在迭代器时,只能用迭代器的方法操作元素,可是Iterator方法是有限的,如果想要其他的操作如添加,修改等就需要使用其子接口,listIterator. 

该接口只能通过List集合的listIterator方法获取。 

LinkedList特有的方法:

//增加元素

addFrist();将指定元素插入此列表的开头。

addLast();将指定元素添加到此列表的结尾。

//获取元素但是不删除元素

 getFrist();返回此列表的第一个元素

 getLast();返回此列表的最后一个元素。

//获取元素,但是删除元素如果集合里面没有元素,会出现NoSuchElementException异常

 removeFirst();移除并返回此列表的第一个元素。

removeLast();移除并返回此列表的最后一个元素。

JDK1.6出现来替代方法

//增加

offerFirst();在此列表的开头插入指定的元素。

offerLast();在此列表末尾插入指定的元素。

//获取

peekFirst();获取但不移除此列表的第一个元素;如果此列表为空,则返回 null

peekLast();获取但不移除此列表的最后一个元素;如果此列表为空,则返回 null

//删除

poollFirst();获取并移除此列表的第一个元素;如果此列表为空,则返回 null

poollLast();获取并移除此列表的最后一个元素;如果此列表为空,则返回 null

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值