更新時間:2019-08-30 11:51:58 來源:動力節點 瀏覽2455次
今天動力節點Java培訓機構小編為大家介紹“集合的概述,Collection集合及其功能,集合中迭代器的原理”希望能夠幫助到java零基礎學員,下面隨小編一起看看吧。
集合的由來
目前的學習的語言是一種面向對象語言,面向對象語言對事物的描述通過對象(屬性,行為..)體現的,必須給對象進行操作,
并且還要針對多個對象進行操作,(使用容器類型的變量):目前學習過的容器:數組和StringBuffer
1、數組:長度固定,不能滿足長度變化的要求
2、StringBuffer:字符串緩沖區,在內存中始終返回的是String類型,也滿足一些需求所以Java提供了一種技術:集合。
集合和數組的區別:
1、長度的區別
數組長度是固定的.
集合長度是可變的!
2、存儲數據類型的區別
數組既可以存儲基本數據類型,也可以存儲引用數據類型
集合只能存儲引用數據類型
3、存儲元素的區別
數組存儲同一種類型的元素 舉例: 水杯中的水
集合可以存儲多個類型的元素
Collection 層次結構中的根接口。Collection 表示一組對象,這些對象也稱為 collection 的元素。 一些 collection 允許有重 復 的元素,而另一些則不允許。一些 collection 是有序的,而另一些則是無序的。JDK 不提供此接口的任何直接 實現:它提供更具體的子接口(如 Set 和 List)實現。
Collection集合中的功能
1、添加功能:
boolean add(Object obj):添加一個元素
boolean addAll(Collection c):添加一個集合的元素 (給一個集合添加進另一個集合中的所有元素)
2、刪除功能:
void clear():移除所有元素
boolean remove(Object o):移除一個元素
boolean removeAll(Collection c):移除一個集合的元素(移除一個以上返回的就是true) 刪除的元素是兩個集合交
交集元素如果沒有交集元素 則刪除失敗 返回false
3、判斷功能:
boolean contains(Object o):判斷集合中是否包含指定的元素
boolean containsAll(Collection c):判斷集合中是否包含指定的集合元素(這個集合 包含 另一個集合中所有的 元
素才算包含才返回true)
比如:1,2,3 containsAll 12=true 1,2,3 containsAll 2,3,4=false
boolean isEmpty():判斷集合是否為空
4、獲取功能:
Iterator
5、長度功能:
int size():元素的個數
6、交集功能:
例如:A集合對B集合取交集,獲取到的交集元素在A集合中。返回的布爾值表示的是A集合是否發生變化
boolean retainAll(Collection c):獲取兩個集合的交集元素(交集:兩個集合都有的元素)
把集合轉換為數組:
Object[] toArray()
注:方法名后面帶ALL的都是集合的高級功能;
Collection集合基本功能的舉例:
public class CollectionDemo {
public static void main(String[] args) {
//不帶all的功能屬于Collection基本功能:
//創建集合對象
//Collection c = new Collection() ; 不能實例化的
Collection c = new ArrayList() ; //利用List接口的子實現類來實例化
System.out.println(c);//[] 集合沒有元素:[] 內部中重寫了Object的toString方法
//boolean add(Object e):添加單個元素
//System.out.println(c.add("hello"));
/**
* ArrayList的add方法的源碼
* public boolean add(E e) {
ensureCapacityInternal(size + 1); // Increments modCount!!
elementData[size++] = e;
return true; //只要添加元素,就返回true
}
*/
c.add("hello") ;
c.add(100);
c.add("world") ;
c.add("java") ;
System.out.println(c);
//void clear();
//c.clear();
//remove(Object o)
System.out.println(c.remove("java"));
System.out.println(c);
//boolean contains(Object o):一個集合中是否包含指定的元素
System.out.println(c.contains("android")) ;
//boolean isEmpty():判斷集合是否為空. 空,就是true
System.out.println(c.isEmpty());
System.out.println(c.size());
}
}
Collection集合高級功能的舉例:
public class CollectionDemo2 {
public static void main(String[] args) {
//創建兩個集合對象
Collection c1 = new ArrayList();
Collection c2 = new ArrayList();
//分別給集合c1,c2中添加元素
c1.add("abc1") ;
c1.add("abc2") ;
c1.add("abc3") ;
c1.add("abc4") ;
//c2.add("abc1") ;
//c2.add("abc2") ;
//c2.add("abc3") ;
c2.add("abc4") ;
//c2.add("abc5") ;
//c2.add("abc6") ;
//c2.add("abc7") ;
System.out.println("c1:"+c1);
System.out.println("c2:"+c2);
System.out.println("-------------------------");
//boolean addAll(Collection c):添加一個集合中的所有元素,添加到c1中
//System.out.println("addAll():"+c1.addAll(c2));
//removeAll(Collection c):移除一個集合中的元素
//System.out.println("removeAll():"+c1.removeAll(c2)); //刪除一個算是刪除!,刪除返回true
//boolean containsAll(Collection c):包含一個集合中的元素
//System.out.println("containsAll():"+c1.containsAll(c2)); //包含所有算是包含
/**
* A集合對B集合取交集,交集的元素的去A集合里面了,返回的boolean表達的意思A集合中的
* 元素是否發生變化.如果沒有變化,false 否則,true
*/
//boolean retainAll(Collection c)
System.out.println("retainAll():"+c1.retainAll(c2));
System.out.println("c1:"+c1);
System.out.println("c2:"+c2);
}
}
Collection集合迭代器的作用和原理:
迭代器作用: 對 collection集合進行迭代的迭代器迭代。
集合的專有遍歷方式: (迭代器)
Iterator
在Iterator中有
boolean hasNext()
Obect next()返回迭代的下一個元素。
迭代器的使用舉例:
package westos.org.collection_demo2;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class CollectionTest2 {
public static void main(String[] args) {
//創建集合對象
Collection collection = new ArrayList() ;
//給集合中添加幾個字符串元素
collection.add("hello") ;
collection.add("java") ;
collection.add("world") ;
collection.add("hadoop") ;
//專有迭代的遍歷方式
//獲取迭代器
Iterator iterator = collection.iterator() ; //實現方式:底層有一個內部類
while(iterator.hasNext()) {//看有沒有下一個元素
System.out.println(iterator.next());//獲取下一個元素
//上述方式直接輸出了,如果要獲取字符串內容的同時,獲取長度
String str = (String)iterator.next() ;
System.out.println(str+"---"+str.length());
}
}
}
迭代器的源碼:
public interface Iterable{
Iterator
}
//接口
interface Iterator{
boolean hasNext() ;
Object next() ;
}
interface Collection{
}
interface List extends Collection{
}
class ArrayList implements List{
public Iterator
return new Itr(); //匿名對象:Itr
}
//內部類:Itr
private class Itr implements Iterator
//判斷是否有下一個元素
public boolean hasNext() {
return cursor != size;
}
//獲取下一個迭代的元素
public E next() {
}
}
}
以上就是動力節點java培訓機構小編分享的“集合的概述,Collection集合及其功能,集合中迭代器的原理”的內容,希望能夠幫助到各位小伙伴們,更多java最新資訊請關注動力節點java培訓機構官網,每天會有精彩內容分享與你。
相關免費視頻教程推薦
Collection集合迭代器(視頻教程下載):http://www.dabaquan.cn/xiazai/2489.html
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習