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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java集合详细

發(fā)布時間:2023/12/9 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java集合详细 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

集合

集合基礎

ArrayList集合的常用方法

Collection 的常用方法

Collection 的遍歷

?遍歷集合的基本步驟:

List集合

List集合的概述以及特點

?List集合的特有方法:

List迭代器:

?List增強for循環(huán):

LinkedList集合的特有功能:

Set集合

set集合的特點:

哈希值:

哈希表的存儲過程

LinkedHashSet集合的概述和特點

?TreeSet集合

TreeSet的特點

Comparable的使用

?Comparator比較器排序的使用

泛型

泛型的定義格式

?泛型的好處:

泛型類的定義格式

?泛型方法

泛型方法的定義格式

泛型接口:

??

類型通配符

可變參數(shù):

Map集合

Map集合概述

?添加元素

Map集合的基本功能

Map集合的獲取方法

?Map集合的遍歷

HashMap集合

集合的嵌套案例

案例:統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù)

Collections

常用方法

案例:ArrayList存儲學生對象并排序

案例:模擬斗地主(洗牌,發(fā)牌,看牌)

案例:模擬斗地主升級版


集合

集合的作用是用來存儲和取出數(shù)據(jù)的

集合基礎

提供一種存儲空間可變的存儲模型,存儲的數(shù)據(jù)容量可以發(fā)生改變

格式:ArrayList<E>

E:是一種特殊的數(shù)據(jù)類型,泛型。

例:ArrayList<String>、ArrayList<Student>

構造方法和添加方法

具體實例

當指定添加集合位置的時候,如果當前指定的位置比當前最高位置要高2位甚至更多事,會報錯

例如:如上圖,現(xiàn)在最大的位置從0開始最大位置為2,那么我現(xiàn)在array.add(4,"javase");

則我現(xiàn)在比最大的位置多出了2,所以會出現(xiàn)報錯,這種錯誤稱為集合的索引越界?

ArrayList集合的常用方法

如下:

遍歷ArrayList集合

通過get關鍵字和for循環(huán)實現(xiàn)

?array為集合名

ArrayList的相關練習

Collection(單列集合)

Map(雙列集合)

關系表如下:

Collection 的創(chuàng)建及添加元素

Collection <String> c=new ArrayList<String>();

c.add("hello");

c.add("world");

Collection 的常用方法

Collection 的遍歷

Iterator:迭代器,集合的專用遍歷方式;

Iterator的常用方法

?實例:

?遍歷集合的基本步驟:

?關于Collection 的練習:

?結果:

List集合

List集合的概述以及特點

?List集合的特有方法:

List迭代器:

ListIterator<E>:可以從任意方向遍歷列表(可以從前到后也可以從后到前),

ListIterator方法的不同之處

與Iterator相對應的next()對應previous()//返回列表中上一個元素,并向后移動光標位置

hasNext()相對應的hasprevious()

?List增強for循環(huán):

Itable:底層包裝的是一個Iterator迭代器

?實例:

?List集合子類特點:

ArrayList:對應數(shù)組(查詢快增刪慢)

LinkedList:對應鏈表(查詢慢增刪快)

LinkedList集合的特有功能:

?

Set集合

set集合的特點:

?HashSet:對集合的迭代順序不做任何保證(不排序)

即存儲順序不一樣

哈希值:

哈希值是jdk根據(jù)對象的地址或者字符串或者數(shù)字算出來的int類型的數(shù)值

public int hashCode():該方法可以返回對象的哈希碼值

同一個對象多次調用該方法返回的哈希值為一樣的

然而默認情況下不同對象的哈希值是不一樣的

重寫方法可以讓哈希值相同

HashSet集合的特點:

?哈希表

哈希表的存儲過程

首先我們哈希表其實是一個數(shù)組,默認長度為16,首先先計算出哈希值,然后通過哈希值取余16,算出結果來之后,從第一個開始如果當前計算出來的位置沒有人的話就直接存儲,如果有人那么就進行哈希值的比較,如果哈希值不相同那么就存儲進去,如果相同那么就比較內容,如果內容一樣那就不存儲當前的內容,反之則可以將其存儲進去

LinkedHashSet集合的概述和特點

?TreeSet集合

TreeSet的特點

我們的TreeSet不能單單使用普通類型,必須使用它的包裝類型

?

?

?自然排序:從小到大排序

Comparable的使用

?Comparator比較器排序的使用

泛型

泛型的本質是參數(shù)化類型

泛型的定義格式

?泛型的好處:

泛型類的定義格式

泛型類的使用(聲明泛型是什么類型就是什么類型)

?泛型方法

通過泛型類我們可以在調用該方法的時候無論使用什么類型都是可以的?

泛型方法的定義格式

?通過泛型方法我們可以接受任意的引用類型如:

優(yōu)點: 可以不用聲明是什么泛型,可以在調用的時候直接調用,這時它會自動識別。

泛型接口:

泛型接口的實現(xiàn)類

??

類型通配符

可變參數(shù):

?通過可變參數(shù)可以進行多個數(shù)據(jù)的計算

?注意事項

?可變參數(shù)的使用

Arrays.asList只能更改值,不能增加和刪除值

?

?List.of方法的增刪改都不行

Set.of方法不允許有重復值,不能進行增刪操作 ,沒有修改的方法

Map集合

Map集合概述

(Map是一個接口)?

創(chuàng)建Map集合的對象

?添加元素

保證鍵的唯一性

當添加的元素如果,它們的鍵值相同,那么它會替換掉它之前的數(shù)據(jù),看以上的案例,當?

柳巖這個元素添加上來后,因為它與王祖賢這個元素的鍵值相同,所以它會替換掉王祖賢這個元素

Map集合的基本功能

Map集合的獲取方法

?get:根據(jù)鍵值獲取值,如果不存在則返回null

KeySet:獲取所有鍵的集合

values:獲取所有值的集合

?

?Map集合的遍歷

一、

?實例

第二種方法

通過EntrySet(鍵值對對象)方法獲取Key值和value值?

HashMap集合

同以上Hash一樣,沒有順序,只能用增強for遍歷

HashMap保證數(shù)據(jù)的唯一性

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

HashMap集合存儲學生對象并遍歷,而且保證數(shù)據(jù)的唯一性

集合的嵌套案例

ArrayList集合存儲HashMao元素并遍歷

實例:

HashMap集合存儲ArrayList元素并遍歷

實例:

案例:統(tǒng)計字符串中每個字符出現(xiàn)的次數(shù)

實例:

使用TreeMap來進行優(yōu)化(對key值進行排序)

Collections

是針對集合類操作的工具類

常用方法

Collections.sort(list) ; //從小到大排序

Collections.reverse(list) ; //反轉,將原來的順序進行反轉排序

Collections.shuffle(list); //隨機置換 ,每次運行都產生在不同的位置

案例:ArrayList存儲學生對象并排序

直接利用Collections.sort 方法進行排序

注意:由于sort方法需要的是List 但我們現(xiàn)在是ArraryList 所以我們需要給定一個比較器 Comparator

案例:模擬斗地主(洗牌,發(fā)牌,看牌)

實例:

案例:模擬斗地主升級版

要求對牌進行排序

總結

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

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