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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Java中数组以及集合

發布時間:2025/3/21 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中数组以及集合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

java中數組:?數組在Java里是一種特殊類型,有別于普通的“類的實例”的對象。但實際數組也是一種對象類型,int[]a = new int[5] ?a是在java棧中分配的引用變量,類型是int[] 數組類型,指向在堆里面地址連續的實際數組對象。

在內存中,數組存儲在連續的區域內部,因為數組中每個元素的類型相同,則占用的內存大小也一致,所以在訪問數組中的元素時可以直接根據數組在內存中的起始位置以及下標來計算元素的位置,因此數組的訪問速度很高。數組必須要初始化才能使用,初始化之后JVM會自動分配默認值,引用變量默認值是null。

數組和集合的區別:

1》數組初始化之后大小固定,無法再改變,集合大小可以改變。

2》同一個數組只能存儲同一種數據類型(基本類型/引用類型).集合不考慮泛型可以存儲多種數據類型,集合是存儲對象的,所以基本類型不能放入集合,可以使用基本類型的包裝類型。

3》若程序時不知道究竟需要多少對象,需要在空間不足時自動擴增容量,則需要使用容器類庫,array不適用。

數組和集合之間進行轉化:

toArray():將集合轉化為數組。

Arrays.asList():將數組轉化為集合.

?

集合的體系結構

List、Set、Map是這個集合體系中最主要的三個接口。 List和Set繼承自Collection接口。 Map也屬于集合系統,但和Collection接口不同。

?

Set無序,不允許元素重復。HashSet和TreeSet是兩個主要的實現類。Set 只能通過游標來取值,并且值是不能重復的。

?

List有序且允許元素重復。ArrayList、LinkedList和Vector是三個主要的實現類。 ArrayList 是線程不安全的, Vector 是線程安全的,這兩個類底層都是由數組實現的 LinkedList 是線程不安全的,底層是由鏈表實現的

?

Map 是鍵值對集合。其中key列就是一個集合,key不能重復,但是value可以重復。 HashMap、TreeMap和Hashtable是Map的三個主要的實現類。 HashTable 是線程安全的,不能存儲?null?值 HashMap 不是線程安全的,可以存儲?null?值

?

?


?
------------| Collection 單例集合的根接口
----------------| List ?如果是實現了List接口的集合類,具備的特點: 有序,可重復。?
-------------------| ArrayList ?ArrayList 底層是維護了一個Object數組實現的。 特點: 查詢速度快,增刪慢。
-------------------| LinkedList LinkedList 底層是使用了鏈表數據結構實現的, 特點: 查詢速度慢,增刪快。
-------------------| Vector(了解即可) ?底層也是維護了一個Object的數組實現的,實現與ArrayList是一樣的,但是Vector是線程安全的,操作效率低。


----------------| Set ?如果是實現了Set接口的集合類,具備的特點: 無序,不可重復。
-------------------| HashSet ?底層是使用了哈希表來支持的,特點: 存取速度快.?
-------------------| TreeSet ? 如果元素具備自然順序 的特性,那么就按照元素自然順序的特性進行排序存儲。

?

Collection接口的方法:

int size(); ? ? ? ? ? ??? ? boolean isEmpty(); ? ? ? ? ? ?? boolean contains(Object o); ? ? ? ? ??Iterator<E> iterator(); ? ? ? ? ? ? ???Object[] toArray(); ? ? ???boolean add(E e); ? ? ? ??? ? boolean remove(Object o); ? ? ??? ? boolean containsAll(Collection<?> c); ? ??? boolean addAll(Collection<? extends E> c); ? ? ? ??? boolean removeAll(Collection<?> c); ? ? ? ??

void clear();

?

http://blog.csdn.net/qq_33642117/article/details/52040345 ? ? ? ?set的講解

http://blog.csdn.net/qq_33642117/article/details/52049764 ? ? ? ?map的講解

轉載于:https://my.oschina.net/yzbty32/blog/1634632

總結

以上是生活随笔為你收集整理的Java中数组以及集合的全部內容,希望文章能夠幫你解決所遇到的問題。

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