日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 顶层类_Javase之集合体系之(1)集合顶层类Collection与其迭代器知识

發布時間:2025/4/16 java 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 顶层类_Javase之集合体系之(1)集合顶层类Collection与其迭代器知识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

集合體系之集合頂層類Collection與其迭代器知識

集合的由來:Java是一門面向對象語言,而面向對象語言對事物的描述是通過對象體現的,為了方便對多個對象進行操作,就必須把多個對象進行存儲,而要存儲多個對象,就不能是一個基本變量,而應該是一個容器類型的變量,在容器以前的內容中,只有數組和StringBuffer是容器類型。但StringBuffer的結果是一個字符串。故只能使用數組,即對象數組。但對象數組因為長度固定,不能適應變化的需求。所以Java提供集合類。

集合與數組的區別

1.集合的長度可變,而數組長度固定。

2.數組存儲了一類元素,集合可以存儲不同類型的元素。

3.數組即可存儲基本類型數據,又可存儲引用類型數據。但集合只能存儲引用類型。

Colection(接口)

集合的頂層接口,其子體系有重復的,有唯一的,有無序的,有有序的。

主要子接口有兩個:

?|–List

?有序(存儲與取出順序不一致),可重復。

?|–Set

?無序(存儲順序與取出順序不一致,但它有內在的存儲順序該順序通過哈希表生成,有時在輸入時可能與其內在順序相同,但之并不代表其有序,多輸入幾個數據就會發現其無序性),唯一。

?

Collection的功能概述

添加功能

boolean add(E e):添加一個元素

boolean addAll(Collection extends E> c):添加一個集合的元素

刪除功能

void clear():移除所有元素

boolean remove(Object o):collection 中移除指定元素的單個實例

boolean removeAll(Collection> c):移除一個集合的對象(只要有一個被移除就返回true)

判斷功能

boolean contains(Object o):判斷集合是否包含指定元素

boolean containsAll(Collection> c);判斷集合是否包含指定的集合元素(包含所有才叫包含)

boolean isEmpty():判斷集合是否為空

獲取功能

Iterator iterator():生成一個迭代器對象,從而迭代訪問每個元素

長度功能

int size():元素個數

交集功能

boolean retainAll(Collection> c):刪除集合中,在c集合中不存在的元素

解釋:假定有A,B兩個集合

A,B做交集,最終結果存放在A中,B不變

返回值表示A是否發生變化。

把集合轉換為數組

toArray

Object[] toArray()

Iterator(接口)

對 collection 進行迭代的迭代器。

是遍歷集合的一種方式,迭代器依賴于集合存在

迭代器定義為接口的原因:

?假定迭代器是一個類,那么我們就可以創建該類對象并調用方法來實現集合的遍歷,但是Java中有許多的集合類,而這些集合類的數據結構不同,所以存儲和遍歷的方式是不同的。進而它們的遍歷方式不同,所以沒有定義迭代器類。

?而無論是哪種集合,都具備獲取元素的操作,而且最好在輔助于判斷功能,這樣在獲取前,先判斷就不容易出錯,所以判斷功能和獲取功能應該是一個集合遍歷所具備的,而每種集合的遍歷方式不同。所以就把兩種功能提取出來,而不提供具體實現,這就是迭代器聲明為接口的原因。

?迭代器真正的實現類在具體的子類中,以內部類的方式實現。

因為Collection類實現了Iterable而Iterable中

hasNext

boolean hasNext():如果仍有元素可以迭代,則返回 true。

(換句話說,如果 next 返回了元素而不是拋出異常,則返回 true)。

next

E next():返回迭代的下一個元素。

remove

void remove():從迭代器指向的 collection 中移除迭代器返回的最后一個元素(可選操作)。

每次調用 next 只能調用一次此方法。如果進行迭代時用調用此方法之外的其他方式修改了該迭代器

所指向的 collection,則迭代器的行為是不確定的。

拋出:

UnsupportedOperationException - 如果迭代器不支持 remove 操作。

IllegalStateException - 如果尚未調用 next 方法,或者在上一次調用 next 方法之后已經

調用了 remove 方法。

迭代器使用的兩種方式

while

通過迭代器的hasNext()和next()方法實現

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class t3 {

public static void main(String[] args) {

Collection c = new ArrayList();

c.add("hello");

c.add("world");

c.add("java");

Iterator it = c.iterator();

while (it.hasNext()){

String s = it.next();

System.out.println(s);

}

}

}

out:

hello

world

java

增強for循環

import java.util.ArrayList;

import java.util.Collection;

import java.util.Iterator;

public class t3 {

public static void main(String[] args) {

Collection c = new ArrayList();

c.add("hello");

c.add("world");

c.add("java");

for (String s:c){

System.out.println(s);

}

}

}

out:

hello

world

java

二者作用相同

總結

以上是生活随笔為你收集整理的java 顶层类_Javase之集合体系之(1)集合顶层类Collection与其迭代器知识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。