集合有三種主要類型:集合、列表、映射和隊列。//在jdk5中添加隊列。
(1)集
集合是最簡單的集合。它的對象沒有按照特定的方式排序,只是簡單地添加到集合中,就像把東西放進口袋壹樣。對集合中成員的訪問和操作是通過對集合中對象的引用來完成的,因此集合中不能有重復的對象。我們知道數學集合也是集合,集合中壹定不能有重復的元素。
(2)列表
列表的主要特征是它的對象以線性方式存儲,沒有特定的順序,只有開始和結束。當然,它不同於壹個完全沒有秩序的集合。這是壹個鏈表。壹個鏈條壹定是有順序的,但是這個順序不壹定是這樣的。
(3)地圖
Map,java裏不是地圖的意思,其實就是地圖。它是壹個鍵值對。什麽是鍵值對?比如我們查字典,用偏旁查找法。目錄這個詞是關鍵,這個詞的解釋就是值。鍵和值成對出現。這可以理解。這也是很常見的數據結構。
(4)排隊
在jdk5.0之前,常見的實現方法是使用java.util.List集合來模仿隊列。隊列的概念是通過將對象添加到列表的尾部(即隊列的後部),並通過從列表的頭部(即隊列的前部)提取對象來將它們從列表中移除(即入隊的操作)來模擬的。當需要執行FIFO動作時,可以直接使用隊列接口。
這四樣東西,有時候功能並不完善,有些子類需要繼承它的特性。Set子接口包括TreeSet、SortedSet、List、ArrayList、Map、HashMap、HashTable和Queue。讓我們來看壹些例子:
練習:樹立榜樣
導入Java . util . *;
公共類SetExample {
公共靜態void main(String[] args) {
set set = new HashSet();//HashSet是Set的子接口。
set . add(" one ");
set.add("秒");
set . add(" 3rd ");
set.add(新整數(4));
set.add(新浮點型(5.0F));
set.add("秒");
set.add(新整數(4));
system . out . println(set);
}}
列表示例:
導入Java . util . *;
公共類列表示例{
公共靜態void main(String[] args) {
list list = new ArrayList();
list . add(" one ");
list . add(" second ");
list . add(" 3rd ");
list.add(新整數(4));
list.add(新浮動(5.0F));
list . add(" second ");
list.add(新整數(4));
system . out . println(list);
}}
地圖示例
導入Java . util . map;
導入Java . util . hashmap;
導入Java . util . iterator;
導入Java . io . filereader;
公共類映射示例{
公共靜態void main(String[] args)拋出java.io.FileNotFoundException {
map word _ count _ map = new HashMap();
FileReader = new FileReader(args[0]);
iterator words = new wordstream iterator(reader);
while ( words.hasNext() ) {
String word =(String)words . next();
string word _ lower case = word . tolowercase();
整數頻率=(Integer)word _ count _ map . get(word _ lower case);
if ( frequency == null ) {
頻率=新整數(1);
}否則{
int value = frequency . int value();
頻率=新整數(值+1);}
word _ count _ map . put(word _ lower case,頻率);
}
system . out . println(word _ count _ map);
}}
隊列示例:
導入Java . io . io exception;
導入Java . io . printstream;
導入Java . util . linked list;
導入Java . util . queue;
公共類隊列測試器{
公共隊列& lt字符串& gtq;//發現壹個奇怪的語法,這個尖括號是泛型聲明。
public queue tester(){ q = new linked list & lt;字符串& gt();}
公共void testFIFO(PrintStream out)引發IOException {
q . add(" First ");
q.add("第二");
q.add("第三");
對象o;
while ((o = q.poll())!= null) {
out . println(o);}}
公共靜態void main(String[] args) {
queue tester tester = new queue tester();
試試{ tester . test FIFO(system . out);
} catch (IOException e) {
e . printstacktrace();} }}