一、以ArrayList为例子: a,添加:a1.add("java");1,参数类型是Object以便接收任意对象。2,集合中存储的都是对象的引用即(地址) b,打印:sop(a1); 删除元素 a1.remove("my"); 清空:a1.clear(); c,判断元素是否存在:a1.contains("my")结果为true,false d,判断是否为空:a1.isEmpty()结果为true,false 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()); }当运行完毕后局部变量消失释放内存。 在循环中Iterator的it.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特有的迭代器:Listiterator是iterator的子接口。不可以通过集合对象来操作集合中的元素。因为会发生异常。 在迭代过程中添加元素: 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()); }
|