程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2SE >> J2SE - 集合框架(2)

J2SE - 集合框架(2)

編輯:J2SE

Set:繼承自Collection接口,表示無序的,無重復元素的集合。Set中最常使用的是測試歸屬性,可以很容易測試某個對象是否在某個Set中。所以,查找就成為了Set中最重要的操作,因此通常會選擇一個HashSet的實現查找,因為有比較復雜的哈希表支持,它專門對快速查找進行了優化。

迭代器:迭代器是一種設計模式,在這裡是一個對象,它的作用就是遍歷並選擇列表和操作列表中的對象。迭代器的創佳的代價小,所以通常被稱為輕量級對象。迭代器統一了對各種容器的訪問方式,很方便。Java中的迭代器有兩種,一種是Iterator,另一種是繼承了Iterator只能用於各種List訪問的ListIterator. Iterator:只能用於單向移動,方法有:iterator()要求容器返回一個Iterator,Iterator將准備好返回序列的第一元素。next()獲得列表中的下一個元素。hasNext()檢查列表中是否還有元素。remove()將迭代器新近返回的元素刪除。

ListIterator:只能用於各種的List類的訪問,但能用於雙向的移動,有一個hASPrevious()檢查時候有前一個元素的,這種操作很像數據庫的游標。

import Java.util.ArrayList;
import Java.util.Arrays;
import Java.util.Collection;
import Java.util.Iterator;
import Java.util.LinkedList;
import Java.util.List;
import Java.util.ListIterator;
   public class ListTest ...{
   public static void main(String [] args)
   ...{
     Collection<Integer> col = new ArrayList<Integer>(Arrays.asList(10,20,30));
     List<Integer> list = new LinkedList<Integer>();
     list.addAll(col);
     list.add(40);
     list.add(50);
     list.add(60);
     displayIterator(list);
     list.remove(3);
     displayListIterator(list);
   }
   public static void displayIterator(Collection<Integer> list)
   ...{
     Iterator<Integer> it = list.iterator();
     Integer i;
     while(it.hasNext())
     ...{
       i = it.next();
       System.out.print(i + " ");
       if(i==50)
       ...{
         it.remove();
       }
     }
     System.out.println();
   }
   public static void displayListIterator(List<Integer> list)
   ...{
     ListIterator<Integer> li = list.listIterator();
     /** *//**以下注釋代碼為死循環,永遠輸入表中的第一個數據*/
     /** *//**while(li.hasNext())
     {
       System.out.println(li.next());
       System.out.println(li.previous());
     }*/
     while(li.hasNext())
     ...{
       System.out.print(li.next() + " ");
     }
     System.out.println();
     while(li.hASPrevious())
     ...{
       System.out.print(li.previous() + " ");
     }
   }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved