集合学习笔记

来源:互联网 发布:华为麦芒4选择通话网络 编辑:程序博客网 时间:2024/05/22 02:29



Collection
1、 add方法的参数类型是Object。以便于接收任意类型对象。
2、集合中储存的都是对象的引用(地址)。
迭代器及时集合取出元素的方式。


1、添加元素
add(Object  obj)
2、删除元素
remove(Object  obj)
clear(Object  obj)清空集合
3、判断元素
contains(Object  obj)是否包含
isEmpty(Object  obj)是否为空
4、取交集
a.retainAll(b):a集合元素变为a与b的交集,无交集为空,b集合不变
5、取出元素
 Iterator it = al.iterator();   //获取迭代器,用于取出集合中的元素。
      while(it.hasNext()) {
      System.out.println(it.next());

1、 add方法的参数类型是Object。以便于接收任意类型对象。
2、集合中储存的都是对象的引用(地址)。
迭代器及时集合取出元素的方式。


1、添加元素
add(Object  obj)
2、删除元素
remove(Object  obj)
clear(Object  obj)清空集合
3、判断元素
contains(Object  obj)是否包含
isEmpty(Object  obj)是否为空
4、取交集
a.retainAll(b):a集合元素变为a与b的交集,无交集为空,b集合不变
5、取出元素
 Iterator it = al.iterator();   //获取迭代器,用于取出集合中的元素。
      while(it.hasNext()) {
      System.out.println(it.next());

       }


import java.util.*;public class CollectionDemo {public static void main(String[] args) {method_add();method_get();}public static void method_get() {ArrayList<String> al = new ArrayList<String>();al.add("java1");al.add("java2");al.add("java3");Iterator it = al.iterator();while(it.hasNext()) {sop(it.next());}}public static void method_add() {ArrayList<String> al = new ArrayList<String>();al.add("java1");al.add("java2");al.add("java3");sop(al.size());  //打印长度sop(al);al.remove("java2");sop(al);sop(al.isEmpty());}public static void sop(Object obj) {System.out.println(obj);}}

二、list:元素是有序的,可以重复,因为该集合体系有索引。
  —ArrayList:底层的数据结构使用的数组结构。特点:查询速度快,但是增删稍慢。线程不同步。
        —LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。
        —Vector:底层是数组数据结构。线程同步。被ArrayList替代了。枚举就是Vector特有的取出方式。
特有方法:凡是可以操纵角标的方法都是该体系特有的方法。
 增
add(index, element);在index的位置增加一个元素。
addAll(index,Collection);在index位置增加指定集合的元素

remove(index);把某个元素删除

set(index, element):把角标index位置的元素替换

get(index):查找index位置的元素,可用for循环遍历,查找所有元素,为list特有的查找方式。
sunList(start, end)
listIterator();


import java.util.*;public class ListDemo {public static void main(String[] args) {method_list();}public static void method_list(){ArrayList<String> al = new ArrayList<String>();al.add("java1");al.add("java2");al.add("java3");al.add("java4");sop(al);//添加元素al.add(2,"sun");sop(al);//移除元素al.remove(1);sop(al);//替换元素al.set(1,"javao5");sop(al);//查找元素并迭代sop(al.get(3));sop("");for(int i = 0; i < al.size(); i++ ) {sop(al.get(i));}sop("");Iterator it = al.iterator();while(it.hasNext()) {sop(it.next());}//查找元素的位置sop(al.indexOf("java4"));//获取子串List list =al.subList(1,3);sop(list); }public static void sop(Object o) {System.out.println(o);} }运行结果:[java1, java2, java3, java4][java1, java2, sun, java3, java4][java1, sun, java3, java4][java1, javao5, java3, java4]java4java1javao5java3java4java1javao5java3java43[javao5, java3]


ListIterator
List集合特有的迭代器:列表迭代器listIterator是Iterator的子接口; 
用迭代器迭代时不能同时进行集合添加等操作,会引起并发异常。只能用迭代器内的方法操作元素,可是Iterator方法是有限的,只有判断、取出和删除操作。如果想要其他的操作如添加、修改等,就需要使用其子接口ListIterator。该接口只能通过List集合的ListIterator()方法获取。可以在遍历过程中进行增、删、改、查。

import java.util.*;public class ListDemo {public static void main(String[] args) {mothod_ListIteraator() ;}public static void sop(Object o) {System.out.println(o);}  public static void mothod_ListIteraator() { ArrayList<String> al = new ArrayList<String>();al.add("java1");al.add("java2");al.add("java3");ListIterator li =al.listIterator();while(li.hasNext()) {Object obj = li.next();if (obj.equals("java2")) {//li.add("java007");  li.set("pan");}}sop(al);while(li.hasPrevious()) {sop(li.previous());} }}运行结果:[java1, pan, java3]java3panjava1


0 0
原创粉丝点击