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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 刽子手游戏_java基础(九):容器

發布時間:2025/3/8 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 刽子手游戏_java基础(九):容器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

集合的引入

List (ArrayList LinkedList)

Set (HashSet LinkedHashSet TreeSet )

Map (HashMap LinkedHashMap TreeMap)

Collections

Iterator

使用泛型

1.為什么使用集合而不是數組?

集合和數組相似點

都可以存儲多個對象,對外作為一個整體存在

數組的缺點

長度必須在初始化時指定,且固定不變

數組采用連續存儲空間,刪除和添加效率低下

數組無法直接保存映射關系

數組缺乏封裝,操作繁瑣

2.集合架構

Java集合框架提供了一套性能優良、使用方便的接口和類,它們位于java.util包中

Collection 接口存儲一組不唯一,無序的對象

List 接口存儲一組不唯一,有序(索引順序)的對象

Set 接口存儲一組唯一,無序的對象

Map接口存儲一組鍵值對象,提供key到value的映射

Key 唯一 無序

value 不唯一 無序

2.1?List

特點:有序? 不唯一(可重復)

ArrayList:ArrayList是一個對數組進行了封裝的容器。使用過程中ArrayList對于數據的查找及遍歷效率較高。

在內存中分配連續的空間,實現了長度可變的數組

優點:遍歷元素和隨機訪問元素的效率比較高

缺點:添加和刪除需大量移動元素效率低,按照內容查詢效率低,

ArrayList常用方法

Add() :向現有集合中添加或插入一個元素

Get() :獲取指定索引位置的元素

Set() :設置指定索引位置的元素值

Clear() :清除所有的元素值

Remove() :刪除指定索引位置的元素

Size() :獲取容器中元素的個數

LinkedList:LinkedList在底層是一雙向鏈表的形式進行實現,LinkedList在執行數據的維護過程中效率較高。LinkedList允許以隊列或棧的方式訪問數據。

采用鏈表存儲方式。

缺點:遍歷和隨機訪問元素效率低下

優點:插入、刪除元素效率比較高(但是前提也是必須先低效率查詢才可。如果插入刪除發生在頭尾可以減少查詢次數)

LinkedList常用方法:

getFirst() :獲取列表中的第一個元素

getLast() :獲取列表中的最后一個元素

peek() :以隊列的方式獲取列表數據(獲取不刪除)

poll() :以隊列的方式獲取列表數據(獲取并刪除)

push() :以棧的方式將數據壓入到列表中

pop() :以出棧的方式訪問元素(獲取并刪除)

其他方法參見ArrayList

List的遍歷方法

for

for-each

Iterator迭代器

集合中內容是否相同

通過equals進行內容比較,而是==引用比較

2.2?Set

特點:無序 唯一(不重復)

HashSet

采用Hashtable哈希表存儲結構(神奇的結構)

優點:添加速度快 查詢速度快 刪除速度快

缺點:無序

HashSet常用方法:

Add() :向集合中添加一個元素

Clear() :清除集合中所有元素

Remove() :按照元素之刪除集合中指定的元素

注意:HashSet中不支持下標方式訪問及修改元素值。

LinkedHashSet

采用哈希表存儲結構,同時使用鏈表維護次序

有序(添加順序)

TreeSet

采用二叉樹(紅黑樹)的存儲結構

優點:有序 查詢速度比List快(按照內容查詢)

缺點:查詢速度沒有HashSet快

Set常用方法

Set相對Collection沒有增加任何方法

Set的遍歷方法

for-each

Iterator迭代器

無法使用for進行遍歷(因為無序,所以沒有get(i))

HashSet、HashMap或Hashtable中對象唯一性判斷

重寫其hashCode()和equals()方法

TreeSet中指明排序依據

實現Comparable接口 創建實現Compator接口的類。

哈希表存儲原理

2.3?Map

特點 key-value映射

HashMap

Key無序 唯一 (Set)

Value 無序 不唯一 (Collection)

LinkedHashMap

有序的HashMap 速度快

TreeMap

有序 速度沒有hash快

問題:Set和Map有關系嗎?

采用了相同的數據結構,只用于map的key存儲數據,就是Set

3.?Collections

專門用來操作集合的工具類

構造方法私有,禁止創建對象

提供一系列靜態方法實現對各種集合的操作

具體操作:搜索、復制、排序、線程安全化等

常用方法

Collections.addAll(list, "aaa","bbb","ccc","ccc");

int index = Collections.binarySearch(list, "ccc");

Collections.copy(list2, list);

Collections.fill(list3, "888");

String max = Collections.max(list4);

String min = Collections.min(list4);

Collections.reverse(list4);

List list5 = Collections.synchronizedList(list4);

4.?Iterator

所有集合類均未提供相應的遍歷方法,而是把把遍歷交給迭代器完成。

迭代器為集合而生,專門實現集合遍歷

Iterator是迭代器設計模式的具體實現

Iterator方法

boolean hasNext(): 判斷是否存在另一個可訪問的元素

Object next(): 返回要訪問的下一個元素

void remove(): 刪除上次訪問返回的對象。

問題:可以使用Iterator遍歷的本質是什么

實現Iterable接口

For-each循環

增強的for循環,遍歷array 或 Collection的時候相當簡便

無需獲得集合和數組長度,無需使用索引訪問元素,無需循環條件

遍歷集合時底層調用Iterator完成操作

For-each缺陷:

數組:

不能方便的訪問下標值

不要在for-each中嘗試對變量賦值,只是一個臨時變量

集合:

與使用Iterator相比,不能方便的刪除集合中的內容

For-each總結:

除了簡單遍歷并讀出其中的內容外,不建議使用增強for

5.泛型

JDK1.4以前類型不明確: 裝入集合的類型都被當作Object對待,從而失去自己的實際類型。 從集合中取出時往往需要轉型,效率低,容易產生錯誤。

泛型:在定義集合的時候同時定義集合中對象的類型

好處: 增強程序的可讀性和安全性

6.術語辨析

集合和數組的比較

Collection和Collections的區別

ArrayList和LinkedList 的聯系和區別

Vector和ArrayList的聯系和區別

HashMap和Hashtable的聯系和區別

集合和數組的比較:

數組不是面向對象的,存在明顯的缺陷,

集合完全彌補了數組的一些缺點,比數組更靈活更實用,

可大大提高軟件的開發效率而且不同的集合框架類可適用于不同場合。具體如下:

1:數組能存放基本數據類型和對象,而集合類中只能放對象。

2 : 數組容量固定且無法動態改變,集合類容量動態改變。

3:數組無法判斷其中實際存有多少元素,length只告訴了array容量

4:集合有多種實現方式和不同適用場合,不像數組僅采用順序表方式

5:集合以類的形式存在,具有封裝、繼承、多態等類的特性,通過簡單的方法和屬性調用即可實現各種復雜操作,大大提高軟件的開發效率

ArrayList和LinkedList 的聯系和區別

聯系: 都實現了List接口 有序 不唯一(可重復)

ArrayList

在內存中分配連續的空間,采用了順序表結構,實現了長度可變的數組

優點:遍歷元素和隨機訪問元素的效率比較高

缺點:添加和刪除需大量移動元素效率低,按照內容查詢效率低,

LinkedList

采用鏈表存儲方式。

缺點:遍歷和隨機訪問元素效率低下

優點:插入、刪除元素效率比較高(但是前提也是必須先低效率查詢才可。如果插入刪除發生在頭尾可以減少查詢次數)

Collection和Collections的區別:

Collection是Java提供的集合接口,存儲一組不唯一,無序的對象。它有兩個子接口List和Set。

Java中還有一個Collections類,專門用來操作集合類 ,它提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作。

Vector和ArrayList的聯系和區別:

實現原理相同,功能相同,都是長度可變的數組結構,很多情況下可以互用

兩者的主要區別如下:

Vector是早期JDK接口,ArrayList是替代Vector的新接口

Vector線程安全,ArrayList重速度輕安全,線程非安全

長度需增長時,Vector默認增長一倍,ArrayList增長50%

HashMap和Hashtable的聯系和區別

實現原理相同,功能相同,底層都是哈希表結構,查詢速度快,在很多情況下可以互用

兩者的主要區別如下:

Hashtable是早期JDK提供的接口,HashMap是新版JDK提供的接口

Hashtable繼承Dictionary類,HashMap實現Map接口

Hashtable線程安全,HashMap線程非安全

Hashtable不允許null值,HashMap允許null值

7.小結

總結

以上是生活随笔為你收集整理的java 刽子手游戏_java基础(九):容器的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 综合第一页 | 高h视频在线观看 | 少妇一级淫片免费播放 | 高h文在线 | 91麻豆蜜桃 | 亚洲wwww| 欧美xxxⅹ性欧美大片 | 成人免费黄色片 | 中文字幕日日 | 亚洲一区二区国产 | 波多野结衣mp4 | 极品蜜桃臀肥臀-x88av | 亚洲av午夜精品一区二区三区 | 91一区在线观看 | 亚洲午夜无码av毛片久久 | 亚洲精品高清视频 | 国产人妖网站 | 黄网站色视频免费观看 | 免费福利在线视频 | 中文字幕一区二区三区在线观看 | 久久免费网 | 毛片在线网址 | 欧美成人毛片 | 天天精品| 黄av在线| 男人插女人网站 | 在线中文视频 | 天天干天天要 | 国产又粗又猛又爽视频 | av有声小说一区二区三区 | 成人综合激情网 | 欧美成人看片黄a免费看 | 黄网站免费视频 | 欧美大片一级 | aa一级黄色片 | 成人黄色电影在线 | 欧美v日韩 | 小嫩女直喷白浆 | 亚洲人成无码网站久久99热国产 | 在线看你懂得 | 亚洲国产www | 国产麻豆精品一区 | 97久久久久久 | 在线国产黄色 | 91九色国产| 天天干天天操心 | 美女网站在线免费观看 | 国产精品8 | 精品午夜一区二区 | 国产二区精品 | 日韩有码在线观看 | 欧美va亚洲va| 国产a黄| 东京av男人的天堂 | 337p粉嫩日本欧洲亚洲大胆 | av777777| 欧美黄色大片免费观看 | 久久久久香蕉 | 毛片av免费看 | 人人射影院 | 少妇久久久久 | 麻豆国产精品视频 | 精品伊人 | 丰满人妻一区二区三区四区53 | 亚洲 小说 欧美 激情 另类 | 亚州一二区 | 日韩人妻无码精品久久免费 | 国产伦精品一区二区三区视频我 | 美女考逼| 国产精品9| 69视频在线观看免费 | 无码一区二区三区视频 | 欧美18免费视频 | 国产精品毛片久久久 | 中文字幕在线观看 | 自拍偷拍小视频 | 亚洲网站色| 可乐操亚洲 | 亚洲精品国产av | 九热这里只有精品 | 黄色大尺度视频 | 久久精品伦理 | 精品国偷自产国产一区 | 国产91网 | 长篇乱肉合集乱500小说日本 | 超碰超碰在线 | www.精品在线 | 日本黄色xxxx | 毛片日韩| 亚洲视频在线观看一区二区三区 | a在线视频 | 午夜久久久久久噜噜噜噜 | 婷婷影院在线观看 | 天堂精品在线 | 日本亲子乱子伦xxxx50路 | 国产另类综合 | 日本高清视频一区二区 | 午夜激情在线视频 | 樱井莉亚av |