集合框架-List

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
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章