最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java集合與數(shù)組區(qū)別簡(jiǎn)介及相互轉(zhuǎn)換實(shí)例

 更新時(shí)間:2018年01月08日 11:32:06   作者:annie-baby  
這篇文章主要介紹了Java集合與數(shù)組區(qū)別簡(jiǎn)介及相互轉(zhuǎn)換實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下

數(shù)組Array和集合的區(qū)別:

(1)數(shù)組是大小固定的,并且同一個(gè)數(shù)組只能存放類型一樣的數(shù)據(jù)(基本類型/引用類型)

(2)JAVA集合可以存儲(chǔ)和操作數(shù)目不固定的一組數(shù)據(jù)。(3)若程序時(shí)不知道究竟需要多少對(duì)象,需要在空間不足時(shí)自動(dòng)擴(kuò)增容量,則需要使用容器類庫(kù),array不適用。

聯(lián)系:使用相應(yīng)的toArray()和Arrays.asList()方法可以回想轉(zhuǎn)換。

List和ArrayList的區(qū)別

1.List是接口,List特性就是有序,會(huì)確保以一定的順序保存元素.

ArrayList是它的實(shí)現(xiàn)類,是一個(gè)用數(shù)組實(shí)現(xiàn)的List.

Map是接口,Map特性就是根據(jù)一個(gè)對(duì)象查找對(duì)象.

HashMap是它的實(shí)現(xiàn)類,HashMap用hash表實(shí)現(xiàn)的Map,就是利用對(duì)象的hashcode(hashcode()是Object的方法)進(jìn)行快速散列查找.(關(guān)于散列查找,可以參看<<數(shù)據(jù)結(jié)構(gòu)>>)

2.一般情況下,如果沒(méi)有必要,推薦代碼只同List,Map接口打交道.

比如:Listlist=newArrayList();

這樣做的原因是list就相當(dāng)于是一個(gè)泛型的實(shí)現(xiàn),如果想改變list的類型,只需要:

Listlist=newLinkedList();//LinkedList也是List的實(shí)現(xiàn)類,也是ArrayList的兄弟類

這樣,就不需要修改其它代碼,這就是接口編程的優(yōu)雅之處.

另外的例子就是,在類的方法中,如下聲明:

privatevoiddoMyAction(Listlist){}

這樣這個(gè)方法能處理所有實(shí)現(xiàn)了List接口的類,一定程度上實(shí)現(xiàn)了泛型函數(shù).

3.如果開(kāi)發(fā)的時(shí)候覺(jué)得ArrayList,HashMap的性能不能滿足你的需要,可以通過(guò)實(shí)現(xiàn)List,Map(或者Collection)來(lái)定制你的自定義類.

List,Set轉(zhuǎn)換為數(shù)組的方法

toArray函數(shù)有兩種形式,一種無(wú)參數(shù),一種帶參數(shù),注意帶參數(shù)形式中,要指明數(shù)組的大小。

程序代碼:

public void convertCollectionToArray() {
	List list = new ArrayList();
	Object[] objectArray1 = list.toArray();
	String[] array1 = list.toArray(new String[list.size()]);
	Set set = new HashSet();
	Object[] objectArray2 = set.toArray();
	String[] array2 = set.toArray(new String[set.size()]);
}

反過(guò)來(lái),數(shù)組轉(zhuǎn)換為L(zhǎng)ist,Set。

Integer[] numbers = {7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4};
 // To convert an array into a Set first we convert it to a List. Next
 // with the list we create a HashSet and pass the list as the constructor.
 List list = Arrays.asList(numbers);
 Set set = new HashSet(list);

注意:對(duì)于int[]數(shù)組不能直接這樣做,因?yàn)閍sList()方法的參數(shù)必須是對(duì)象。應(yīng)該先把int[]轉(zhuǎn)化為Integer[]。對(duì)于其他primitive類型的數(shù)組也是如此,必須先轉(zhuǎn)換成相應(yīng)的wrapper類型數(shù)組。

 int[] numbers = {7, 7, 8, 9, 10, 8, 8, 9, 6, 5, 4};
 int size = numbers.length;
 Integer[] array = new Integer[size];
 for (int i = 0; i < numbers.length; i++) {
 Integer integer = numbers[i];
 array[i] = integer;
 }
 List list = Arrays.asList(array);

總結(jié)

以上就是本文關(guān)于Java集合與數(shù)組區(qū)別簡(jiǎn)介及相互轉(zhuǎn)換實(shí)例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:

Java控制臺(tái)輸入數(shù)組并逆序輸出的方法實(shí)例

Java數(shù)組的擴(kuò)容代碼示例

java數(shù)組基礎(chǔ)詳解

如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

相關(guān)文章

  • Java Kafka消費(fèi)者實(shí)現(xiàn)過(guò)程

    Java Kafka消費(fèi)者實(shí)現(xiàn)過(guò)程

    Kafka消費(fèi)者通過(guò)KafkaConsumer類實(shí)現(xiàn),核心機(jī)制包括偏移量管理、消費(fèi)者組協(xié)調(diào)、批量拉取消息及多線程處理,手動(dòng)提交offset確保數(shù)據(jù)可靠性,自動(dòng)提交則依賴框架,本文給大家介紹Java Kafka消費(fèi)者實(shí)現(xiàn)過(guò)程,感興趣的朋友一起看看吧
    2025-08-08
  • SpringBoot整合Mybatis使用Druid數(shù)據(jù)庫(kù)連接池

    SpringBoot整合Mybatis使用Druid數(shù)據(jù)庫(kù)連接池

    這篇文章主要介紹了SpringBoot整合Mybatis使用Druid數(shù)據(jù)庫(kù)連接池,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Java Excel實(shí)現(xiàn)數(shù)據(jù)可視化預(yù)警

    Java Excel實(shí)現(xiàn)數(shù)據(jù)可視化預(yù)警

    本文將結(jié)合 Java 編程語(yǔ)言 和 Spire.XLS 庫(kù),帶你逐步實(shí)現(xiàn)三類常見(jiàn)的高級(jí)條件格式應(yīng)用場(chǎng)景,幫助你打造更直觀,更智能的 Excel 報(bào)表,感興趣的可以了解下
    2025-06-06
  • 深入了解JAVA HASHMAP的死循環(huán)

    深入了解JAVA HASHMAP的死循環(huán)

    HASHMAP基于哈希表的 Map 接口的實(shí)現(xiàn)。此實(shí)現(xiàn)提供所有可選的映射操作,并允許使用 null 值和 null 鍵。(除了非同步和允許使用 null 之外,HashMap 類與 Hashtable 大致相同。)下面小編來(lái)帶大家詳細(xì)了解下吧
    2019-06-06
  • Java中的線程安全集合CopyOnWriteArrayList解析

    Java中的線程安全集合CopyOnWriteArrayList解析

    這篇文章主要介紹了Java中的線程安全CopyOnWriteArrayList解析,CopyOnWriteArrayList是ArrayList的線程安全版本,從他的名字可以推測(cè),CopyOnWriteArrayList是在有寫操作的時(shí)候會(huì)copy一份數(shù)據(jù),然后寫完再設(shè)置成新的數(shù)據(jù),需要的朋友可以參考下
    2023-12-12
  • 詳解JVM基礎(chǔ)之字節(jié)碼的增強(qiáng)技術(shù)

    詳解JVM基礎(chǔ)之字節(jié)碼的增強(qiáng)技術(shù)

    字節(jié)碼增強(qiáng)技術(shù)就是一類對(duì)現(xiàn)有字節(jié)碼進(jìn)行修改或者動(dòng)態(tài)生成全新字節(jié)碼文件的技術(shù)。接下來(lái),我們將從最直接操縱字節(jié)碼的實(shí)現(xiàn)方式開(kāi)始深入進(jìn)行剖析,感興趣的可以了解一下
    2022-10-10
  • 基于java內(nèi)部類作用的深入分析

    基于java內(nèi)部類作用的深入分析

    本篇文章介紹了,基于java內(nèi)部類作用的深入分析。需要的朋友參考下
    2013-05-05
  • JAVA如何獲取客戶端IP地址和MAC地址

    JAVA如何獲取客戶端IP地址和MAC地址

    本篇文章主要介紹了JAVA如何獲取客戶端IP地址和MAC地址非常具有實(shí)用價(jià)值,這里整理了詳細(xì)的代碼,需要的朋友可以參考下
    2017-08-08
  • SpringBoot Actuator潛在的OOM問(wèn)題的解決

    SpringBoot Actuator潛在的OOM問(wèn)題的解決

    本文主要介紹了SpringBoot Actuator潛在的OOM問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • mybatis省略@Param注解操作

    mybatis省略@Param注解操作

    這篇文章主要介紹了mybatis省略@Param注解操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-11-11

最新評(píng)論

惠来县| 车险| 大竹县| 新宁县| 濮阳县| 开阳县| 犍为县| 崇义县| 城市| 获嘉县| 泊头市| 扎鲁特旗| 北宁市| 霍林郭勒市| 海盐县| 琼结县| 彩票| 嘉黎县| 长丰县| 台南县| 龙江县| 正阳县| 泰和县| 崇左市| 龙泉市| 崇阳县| 皋兰县| 句容市| 灵川县| 遵义县| 涞源县| 当雄县| 怀化市| 霸州市| 铅山县| 萨迦县| 新河县| 华阴市| 溧阳市| 平利县| 红桥区|