Day 4:集合——迭代器与List接口
Collection-迭代方法
1、toArray()? 返回Object類型數據,接收也需要Object對象!?Object[] toArray();
Collection c = new ArrayList();
Object[] arr = c.toArray();
2、iterator()? Collection的方法,返回實現Iterator接口的對象,一般用Iterator接口類型數據接收,體現程序的多態性,是程序靈活的表現
?迭代器的作用:就是用于抓取集合中的元素。
迭代器的方法:
? ? ? ? ? ? hasNext()?? 問是否有元素可遍歷。如果有元素可以遍歷,返回true,否則返回false 。
? ? ? ? ? ? next() ? ? ? ? 獲取元素
? ? ? ? ? ? remove() ?? 移除迭代器最后一次返回 的元素。
NoSuchElementException 沒有元素的異常。
出現的原因: 沒有元素可以被迭代(抓取)了
因為迭代器不會返回元素,所以remove();方法不會主動移除集合中數據,需要配合next()使用。及刪除的是next()最后一次抓取的數據
遍歷集合的方法
1、
Object[] arr = c.toArray(); // toArray()? 把集合 的元素存儲到一個 Object的數組中 返回。
for(int i = 0 ; i<arr.length ; i++){
?System.out.print(arr[i]+",");
}
2、使用hasNext() ? ?next()組合方法便利
while(it.hasNext()){
User user = (User) it.next();
if(user.account==id&&user.password.equals(password)){
isLogin = true;
? ?? }
}
3、
使用get方法遍歷集合的元素:
??for (int i = 0; i < list.size() ; i++) {
???System.out.print(list.get(i)+",");
??}
集合的體系:
?Collection 單列集合 的根接口
? List? 如果是實現了List接口的集合類,該集合類具備的特點:有序,可重復
Set?? 如果是實現了Set接口的集合類,該集合類具備的特點: 無序,不可重復
List接口
有序: 集合的有序不是指自然順序,而是指添加進去的順序與元素出來的順序是一致的
List接口中特有的方法具備的特點: 操作的方法都存在索引值。?
只有List接口下面的集合類才具備索引值。其他接口下面的集合類都沒有索引值。
List接口中特有方法:
添加
? ?add(int index, E element)
? ?addAll(int index, Collection<? extends E> c)
獲取:
?? get(int index)
?? indexOf(Object o)
??lastIndexOf(Object o)
?? subList(int fromIndex, int toIndex)
修改:
??set(int index, E element)
迭代
? ?listIterator()
import java.util.*;public class Demo2 {public static void main(String[] args) {List list= new ArrayList();list.add("李杰");list.add("李英");list.add("李漢三"); list.add("李漢斯");/* //添加方法list.add(2, "李四"); List list2 = new ArrayList();list2.add("張三");list2.add("王二");list.addAll(2,list2);*//*//獲取的方法 System.out.println(list.get(1)); //根據索引值獲取集合中的元素使用get方法遍歷集合的元素:for (int i = 0; i < list.size() ; i++) {//判斷集合長度用size()System.out.print(list.get(i)+",");}System.out.println(list.indexOf("李杰"));//找出指定元素第一次出現在集合中 的索引值System.out.println(list.lastIndexOf("李漢斯"));//找指定的元素最后一次出現在集合中的索引值List subList = list.subList(1, 3); //指定開始與結束的索引值截取集合中的元素。System.out.println(subList)//返回值是一個List輸出子集合的元素 */ list.set(3, "李白"); //使用指定的元素替換指定索引值位置的元素。 System.out.println(list);//輸出集合的元素,查看效果 } }?
ListIterator接口特有的方法:
?
?添加:
?? hasPrevious()? 判斷是否存在上一個元素
??previous()??? 當前指針先向上移動一個單位,然后再取出當前指針指向的元素
? ?next();? 先取出當前指針指向的元素,然后指針向下移動一個單位
? ?add(E e)?? 把當前有元素插入到當前指針指向的位置上
??set(E e)?? 替換迭代器最后一次返回的元素
??
?
作業: 使用三種方式遍歷集合的元素. ?
一、 使用get方法遍歷。
二、 使用迭代器正序遍歷。
三、 使用迭代器逆序遍歷。
?
轉載于:https://www.cnblogs.com/JYDesigner/p/9339538.html
總結
以上是生活随笔為你收集整理的Day 4:集合——迭代器与List接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光遇手游拓荒者裙子怎么获得
- 下一篇: BZOJ1014: [JSOI2008]