c++ 将集合set的数据输出到数组中_Java集合类(容器类)简介:(摘抄)
Java集合可用于存儲(chǔ)數(shù)量不等的對(duì)象,并可以實(shí)現(xiàn)常用的數(shù)據(jù)結(jié)構(gòu)(如棧、隊(duì)列等待),還可以用于保存具有映射關(guān)系的關(guān)聯(lián)數(shù)組。Java集合就一種容器,可以把多個(gè)對(duì)象放進(jìn)容器中,Java集合可以記住容器中的對(duì)象的數(shù)據(jù)類(lèi)型,從而可以使代碼更加簡(jiǎn)潔和健壯。
Java集合大致可以分為Set、List、Queue、Map四種體系。
1.Java集合與數(shù)組的區(qū)別:
數(shù)組的長(zhǎng)度是不可變化的,在數(shù)組初始化時(shí)指定了數(shù)組長(zhǎng)度,如果需求要?jiǎng)討B(tài)添加數(shù)據(jù),此時(shí)數(shù)據(jù)就無(wú)可為力了,而集合可以保存不確定數(shù)量的數(shù)據(jù),同時(shí)也可以保存具有映射關(guān)系的數(shù)據(jù)。 同一個(gè)數(shù)組的元素即可是基本類(lèi)型的值,也可以是對(duì)象(實(shí)際上保存的是對(duì)象的引用變量);而集合只能保存同一類(lèi)型的對(duì)象
2.Java集合體系間的繼承關(guān)系
Java集合主要有兩個(gè)接口派生而出:Collection和Map,這個(gè)兩個(gè)接口是Java集合框架的根接口。
其中HashSet、TreeSet、ArrayList、LinkedList是經(jīng)常用到的實(shí)現(xiàn)類(lèi)
Map實(shí)現(xiàn)類(lèi)是用于保存具有映射關(guān)系的數(shù)據(jù)。Map保存的每項(xiàng)數(shù)據(jù)都是鍵值對(duì)(key-value),Map中的key是不可重復(fù)的,key用于標(biāo)識(shí)集合里的每項(xiàng)數(shù)據(jù)。
其中HashMap、TreeMap是經(jīng)常用到的實(shí)現(xiàn)類(lèi)
下面是一些常用方法的數(shù)據(jù)操作例子,主要是添加、刪除、清空、是否為空等:
Collection c= new ArrayList();//添加元素c.add("今天");c.add("明天");c.add(Integer.toString(8)); //基本數(shù)據(jù)類(lèi)型需要轉(zhuǎn)成包裝類(lèi)才能放入集合中System.out.println("c集合中的元素:"+c);//輸出元素個(gè)數(shù)System.out.println("c集合中的元素個(gè)數(shù)為:"+c.size());//刪除指定元素c.remove(Integer.toString(8));//再次輸出集合中的元素個(gè)數(shù)System.out.println("c集合中的元素個(gè)數(shù)為:"+c.size());//判斷是否包含指定對(duì)象System.out.println("c集合中是否包含"今天"字符串:"+c.contains("今天"));System.out.println("c集合中所有的元素:"+c);Collection h= new HashSet();h.add("明天");h.add("明天的天氣會(huì)下雨哦!");//判斷c集合中是否完全包含h集合System.out.println("c集合中是否完全包含h集合?:"+c.containsAll(h));//用c集合減去h集合中的元素c.removeAll(h);System.out.println("c集合中的元素:"+c);//刪除c中所有的元素c.clear();System.out.println("c集合中的元素:"+c);輸出結(jié)果:
c集合中的元素:[今天, 明天, 8] c集合中的元素個(gè)數(shù)為:3 c集合中的元素個(gè)數(shù)為:2 c集合中是否包含"今天"字符串:true c集合中所有的元素:[今天, 明天] c集合中是否完全包含h集合?:false c集合中的元素:[今天] c集合中的元素:[]1.2:使用Iterator(迭代器)遍歷集合
Iterator接口是Collection接口的父接口,因此Collection集合可以直接調(diào)用其方法。
public interface Collection<e> extends Iterable<e> {……}</e></e>
Iterator接口也是Java集合框架中的一員,與Collection系列和Map系列不同的是:
Collection系列、Map系列集合主要是用于盛裝數(shù)據(jù)對(duì)象的。 Iteration主要是用于遍歷Collection中的元素。
2:Set集合
簡(jiǎn)介
可以把多個(gè)對(duì)象存放入Set集合內(nèi),在集合內(nèi)是無(wú)法記住元素的添加順序。Set集合與Collection基本相同,沒(méi)有額外提供其他方法,實(shí)際上Set就是Collection,只是行為略有不同,Set不允許包含重復(fù)元素。
如果視圖在Set集合中添加相同的元素(注意是同一個(gè)對(duì)象的引用,并非是兩個(gè)元素值相同的),add方法會(huì)操作失敗,返回false,新元素是無(wú)法被加入的。
3:List集合
3.1:簡(jiǎn)介
List代表是一個(gè)元素有序、可重復(fù)的集合,集合中每個(gè)元素都有對(duì)應(yīng)的順序索引。List集合允許使用重復(fù)的元素,可以通過(guò)索引來(lái)訪(fǎng)問(wèn)指定位置的元素。List集合默認(rèn)按元素的添加順序來(lái)設(shè)置元素的索引,例如第一次添加的元素索引為0,第二次添加的元素索引為0,依次類(lèi)推下去。
3.2:接口中定義的方法
List作為Collection的子接口,同樣可以調(diào)用Collection的全部方法,List集合具有有序特點(diǎn),同時(shí)List集合還有一些額外的方法:
二、Map集合
1.1:簡(jiǎn)介
Map用戶(hù)保存具有映射關(guān)系的數(shù)據(jù),因此Map集合里保存著兩組數(shù),一組值用戶(hù)保存Map里的key,另一組值用戶(hù)保存Map里的value,key和value都可以是任何引用類(lèi)型的數(shù)據(jù)。Map的key不允許重復(fù),即同一個(gè)Map對(duì)象的任何兩個(gè)key通過(guò)equals方法比較總是返回false。
如下圖所描述,key和value之間存在單向一對(duì)一關(guān)系,即通過(guò)指定的key,總能找到唯一的、確定的value。從Map中取出數(shù)據(jù)時(shí),只要給出指定的key,就可以取出對(duì)應(yīng)的value。
1.2:Map集合與Set集合、List集合的關(guān)系
與Set集合的關(guān)系
如果 把Map里的所有key放在一起看,它們就組成了一個(gè)Set集合(所有的key沒(méi)有順序,key與key之間不能重復(fù)),實(shí)際上Map確實(shí)包含了一個(gè)keySet()方法,用戶(hù)返回Map里所有key組成的Set集合。
與List集合的關(guān)系
如果把Map里的所有value放在一起來(lái)看,它們又非常類(lèi)似于一個(gè)List:元素與元素之間可以重復(fù),每個(gè)元素可以根據(jù)索引來(lái)查找,只是Map中索引不再使用整數(shù)值,而是以另外一個(gè)對(duì)象作為索引。
參考文檔:Java集合類(lèi)(容器類(lèi))、Map集合總結(jié) - JAVA編程語(yǔ)言程序開(kāi)發(fā)技術(shù)文章 - 紅黑聯(lián)盟
以上整理自互聯(lián)網(wǎng),如有侵權(quán)請(qǐng)擠時(shí)聯(lián)系我刪除,謝謝
總結(jié)
以上是生活随笔為你收集整理的c++ 将集合set的数据输出到数组中_Java集合类(容器类)简介:(摘抄)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 种牙时间什么时候最合适
- 下一篇: java 调用本地接口_JAVA通过本地