A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© shaoboguanzi 中级黑马   /  2015-1-21 22:21  /  1029 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、以ArrayList为例子:

   a,添加:a1.add("java");1,参数类型是Object以便接收任意对象。2,集合中存储的都是对象的引用即(地址)

b,打印:sop(a1); 删除元素 a1.remove("my"); 清空:a1.clear();

c,判断元素是否存在:a1.contains("my")结果为truefalse  

d,判断是否为空:a1.isEmpty()结果为truefalse

e,获取集合的长度:a1.size()不是length()

f,去交集:a1.retainAll(a2)a1中只保留和a2中相同的元素。Retain意思是保持、保留。

,迭代器:是用来取出集合中元素方式。就把取出方式定义在集合的内部。

Iterator it=a1.iterator();//声明迭代器。

   sop(it.next());//取出迭代器中的元素

sop(it.hasNext());//判断集合中元素是否为空。

打印取出的内容(比较好的方法)

for(Iterator it=a1.iterator();it.hasNext();)

{

sop(it.next());

}当运行完毕后局部变量消失释放内存。

在循环中Iteratorit.next();只能使用一次。

,常见子接口list用法。Collection下面有list、set.

List元素是有序的,可以重复

常见的子类对象:

Arraylistd底层使用的是数组结构特点查询修改很快,缺点增删很慢。线程同步默认长度为10

linklist底层使用的链表结构(元素之间都有联系,有依次关系)特点增删很快,缺点查询修改很慢。

Vector:底层使用的是数组结构。Vector是矢量,航向的意思。与Arraylist功能一模一样线程同步。

Set元素无序不可以重复。

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

  增a1.add(1, "java000");在角标1增加Java000

删a1.remove(1);在角标1删除Java000

改a1.set(2, "java99");在角标1设置Java99

查a1.get(2);查找角标2的值。

获取元素:List sub=a1.subList(1, 4);

List特有的迭代器:Listiteratoriterator的子接口。不可以通过集合对象来操作集合中的元素。因为会发生异常。

在迭代过程中添加元素:

ListIterator  li=a1.listIterator();

while(li.hasNext())

{

Object obj=li.next();

if(obj.equals("is"))

{

li.set("java");

}

}

Vector:枚举就是Vector特有的取值方式。

枚举和迭代器是一样的。

为何枚举被取代?因为枚举的名称方法的名称都很长,所以被迭代器取代。

Enumeration en=a1.elements();

//elements意思为元素。Enumeration计数,列表

while(en.hasMoreElements())

{

System.out.println(en.nextElement());

}


您需要登录后才可以回帖 登录 | 加入黑马