一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java集合與數(shù)組區(qū)別簡介及相互轉(zhuǎn)換實例

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

2021-03-16 13:20annie-baby Java教程

這篇文章主要介紹了Java集合與數(shù)組區(qū)別簡介及相互轉(zhuǎn)換實例,具有一定借鑒價值,需要的朋友可以參考下

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

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

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

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

List和ArrayList的區(qū)別

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

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

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

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

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

比如:Listlist=newArrayList();

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

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

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

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

privatevoiddoMyAction(Listlist){}

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

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

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

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

程序代碼:

?
1
2
3
4
5
6
7
8
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()]);
}

反過來,數(shù)組轉(zhuǎn)換為List,Set。

?
1
2
3
4
5
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);

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

?
1
2
3
4
5
6
7
8
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ū)別簡介及相互轉(zhuǎn)換實例的全部內(nèi)容,希望對大家有所幫助。如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

原文鏈接:https://www.cnblogs.com/annieBaby/p/4889406.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线看免费 | 菠萝视频5正版在线观看 | 国产91精品久久久久久久 | 欧美日韩高清观看一区二区 | 加勒比成人 | 亚洲图片一区二区三区 | 国产成人高清精品免费5388密 | 精品国语对白精品自拍视 | 亚洲成年网站在线观看 | 99久久6er热免费精品 | 国产精品一区二区在线观看完整版 | 欧洲一级 | 欧美一级在线视频 | 欧美kkk4444在线观看 | 亚洲va欧美va国产va天堂影 | 欧美一级高清片 | tk白嫩玉足脚心vk | 日本免费观看95视频网站 | nxgx在线观看国产中文 | 农夫69小说恋老妇小说 | 强漂亮白丝女教师小说 | 午夜国产在线观看 | 精品免费视在线视频观看 | 欧美综合一区二区三区 | 国产成人精品一区二区不卡 | 亚洲好骚综合 | 五月性 | 亚洲视频在线一区二区三区 | 青青青国产精品国产精品久久久久 | 天天综合天天综合 | 俄罗斯美女破苞 | 欧美免赞性视频 | 精品久久久久久久国产潘金莲 | 手机看片国产免费久久网 | 国产亚洲精品日韩香蕉网 | 精品在线免费观看 | 糖心在线观看网 | 国产精品欧美日韩一区二区 | 精品在线99 | 亚洲国产AV无码综合在线 | 帅老头恋帅老头同性tv |