集合框架-List

来源:互联网 发布:软件开发总结报告 编辑:程序博客网 时间:2024/05/21 07:08
package javaDome8_30;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;


public class ListDemo {


public static void main(String[] args) {
List list = new ArrayList();
/*add(list);
remove(list);
get(list);*/
// listIterator(list);
hasMethod(list);
}
/**
* 1、添加
* add(Object obj) 向列表的尾部添加指定的元素(可选操作)
* add(int index, E element) 在列表的指定位置插入指定元素(可选操作)。
* addAll(Collection<? extends E> c) 添加指定 collection 中的所有元素到此列表的结尾
* addAll(int index, Collection<? extends E> c) 
     * 将指定 collection 中的所有元素都插入到列表中的指定位置(可选操作)。
* @param list

*/
public static void add(List list) {
// list.add(0, "张三");
list.add("西游");
list.add("三国");
list.add("红楼");
list.add("水浒");
list.add(2, "曹操");
System.out.println(list);
}
/**
* 2、删除
* remove(int index) 移除列表中指定位置的元素(可选操作)。
* 下面三种方法与Collection中的方法一样
* clear() 从列表中移除所有元素(可选操作)。
* remove(Object o)  从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。
* removeAll(Collection<?> c) 从列表中移除指定 collection 中包含的其所有元素(可选操作)。      
*/
public static void remove(List list) {
list.remove(3); //通过下标删除元素
System.out.println(list);
}
/**
* 3、获取
* get(int index) 返回列表中指定位置的元素。
* indexOf(Object o) 
          返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
*lastIndexOf(Object o) 
          返回此列表中最后出现的指定元素的索引;如果列表不包含此元素,则返回 -1    
*/
public static void get(List list) {
System.out.println("***************");
System.out.println(list.get(2));
System.out.println(list.indexOf("赵六"));
System.out.println(list.lastIndexOf("三国"));
}

/**
* 4、
* ListIterator中的方法:
* listIterator() 返回此列表元素的列表迭代器(按适当顺序)。
* listIterator(int index) 
          返回列表中元素的列表迭代器(按适当顺序),从列表的指定位置开始。
     *hasNext()  以正向遍历列表时,如果列表迭代器有多个元素,则返回 true
        (换句话说,如果 next 返回一个元素而不是抛出异常,则返回 true)。
       
*Iterator中的方法 :    
     *hasNext() 如果仍有元素可以迭代,则返回 true。    
     *next()  返回迭代的下一个元素。
     *List中的方法:
     * indexOf(Object o) 返回此列表中第一次出现的指定元素的索引;如果此列表不包含该元素,则返回 -1。
     * set(int index, E element) 用指定元素替换列表中指定位置的元素(可选操作)。
     *下面两个对象不能同时存在
*/
public static void listIterator(List list) {
list.add("zhangsan");
list.add("lishi");
list.add("wanger");
list.add(10);
list.add(2,30);

System.out.println(list);
/**
* 不能和下面的对象同时存在
*/
/*Iterator iterator = list.iterator(); //获得一个迭代器对象
while (iterator.hasNext()) {
Object object = iterator.next();//把迭代器中的下一个元素 赋值给object;
if(object instanceof Integer){
int index = list.indexOf(object);
//list.add("郑爽");  //不能添加在已经获取下标后面添加元素
list.set(index, "林允儿");//把 index下标对应的元素转变为 林允儿;
//list.add(index,10);    //报错:ConcurrentModificationException 不能添加在已经获取下标后面添加元素(举例:松开的箭不能能在回头)
System.out.println(list);

}
}*/
System.out.println("*************************");
System.out.println(list);
System.out.println("---------------------------");
/**
* 不能和上面的对象同时存在
* ListIterator接口中的:
* add(E e) 将指定的元素插入列表(可选操作)。
* set(E e) 用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。
          
*/
ListIterator  listiterator = list.listIterator();
while (listiterator.hasNext()) {
Object object = listiterator.next();
if(object instanceof Integer){
int index = list.indexOf(object);
listiterator.add(2222); //可以在已经获得下标对应的元素后添加元素
listiterator.add("林允");
//listiterator.set(66666);//报错:IllegalStateException  
System.out.println(list);
}

}

}
/**
* next() 返回列表中的下一个元素。
* previous()  返回列表中的前一个元素。 
*/
public static void hasMethod(List list) {
list.add("a");
list.add("b");
list.add("c");
ListIterator listIterator = list.listIterator();
System.out.println(listIterator.next());  //a
System.out.println(listIterator.next());  //b
System.out.println(listIterator.next());  //c
listIterator.previous();
System.out.println(listIterator.next());//c
System.out.println(listIterator.previousIndex());//2
listIterator.previous();
listIterator.previous();
System.out.println(listIterator.next());//b
System.out.println(listIterator.previousIndex());//1
listIterator.previous();
listIterator.previous();
System.out.println(listIterator.next());//a
System.out.println(listIterator.previousIndex());//0
}
}