亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java中具有映射關(guān)系的容器:數(shù)組和Map的區(qū)別說明

 更新時間:2020年09月23日 14:20:06   作者:G_66  
這篇文章主要介紹了Java中具有映射關(guān)系的容器:數(shù)組和Map的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

映射就意味著有兩部分;

存儲映射關(guān)系的容器是數(shù)組和Map集合;

區(qū)別:

(1)當(dāng)映射關(guān)系中的一方是有序編號時,這個時候要想到數(shù)組這種結(jié)構(gòu);

(2)Map不一定需要有序編號,它只能建立對象之間的關(guān)系;

(3)如果映射的兩方?jīng)]有任何一方是有序的編號,就不能想數(shù)組了,這時應(yīng)該用集合中具備映射關(guān)系的容器Map。

注意:

(1)Map中鍵相同時,鍵值會被覆蓋;

(2)Map中一個Key可以對應(yīng)一個集合,因?yàn)榧弦彩且粋€對象,集合也能往集合中放。

(3)Map<int,char>這樣寫是不正確的,因?yàn)?,泛型中定義的必須是引用數(shù)據(jù)類型,所以,要找int和char的對象的包裝類即Map<Integer,Character>

補(bǔ)充知識:Java基礎(chǔ):集合(容器)—Collection和Map兩大體系介紹和用法

集合類的作用

集合類也叫做容器類,和數(shù)組一樣,用于存儲數(shù)據(jù),但數(shù)組類型單一,并且長度固定,限制性很大,而集合類可以動態(tài)增加長度。

集合存儲的元素都是對象(引用地址),所以集合可以存儲不同的數(shù)據(jù)類型,但如果是需要比較元素來排序的集合,則需要類型一致。

集合中提供了統(tǒng)一的增刪改查方法,使用方便。

支持泛型,避免數(shù)據(jù)不一致和轉(zhuǎn)換異常,還對常用的數(shù)據(jù)結(jié)構(gòu)進(jìn)行了封裝。

集合框架體系的組成

集合框架體系是由Collection、Map(映射關(guān)系)和Iterator(迭代器)組成,各部分的作用如下所示。

Collection體系中有三種集合:Set、List、Queue

Set(集): 元素是無序的且不可重復(fù)。

List(列表):元素是有序的且可重復(fù)。

Queue(隊(duì)列):封裝了數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列。

Map體系

Map用于保存具有映射關(guān)系的數(shù)據(jù),即key-value(鍵值對)。Map集合的key是唯一的,不可重復(fù),而value可以重復(fù)。所以一個value可以對應(yīng)多個key。

Map體系除了常用類之外,還有Properties(屬性類)也屬于Map體系。

Iterator(迭代器)

基本功能就是遍歷集合中的所有元素,除了List集合有一個獨(dú)有的迭代器Listiterator,別的集合類都是一樣的。

每個集合類都有iterator(),調(diào)用該方法就能得到迭代器對象。

如果List集合使用迭代器,建議使用ListIterator,比原有的迭代器多了一些方法。

除了使用迭代器遍歷集合元素,也可以使用加強(qiáng)for和Java8的foreach()方法。如果是List集合,使用for循環(huán)也能做到。

Collection接口方法

Collection是Set、List和Queue接口的父接口,Set、List、Queue的子類都能使用如下方法。

boolean add(E e)_______________________________添加指定元素
boolean addAll(Collection c)___________________將指定集合中所有元素都添加到此 collection
boolean contains(Object o)_____________________集合中是否包含了指定元素
boolean containsAll(Collection<?> c)___________該集合是否包含指定集合中所有元素
boolean remove(Object o)_______________________移除指定元素
boolean removeAll(Collection<?> c)_____________移除指定的collection參數(shù)的所有元素
void clear()___________________________________清除集合中所有元素
boolean retainAll(Collection<?> c)_____________保留指定Collection參數(shù)中元素,是兩個集合的元素交集
boolean equals(Object o)_______________________比較此 collection 與指定對象是否相等
boolean isEmpty()______________________________判斷該集合是否為空
Iterator<E> iterator()_________________________返回此 collection 的迭代器,用來遍歷元素
int hashCode()_________________________________返回集合的哈希碼值
int size()_____________________________________返回此 collection 中的元素數(shù)
Object[] toArray()_____________________________返回一個包含該Collection所有元素的對象數(shù)組
<T> T[] toArray(T[] a)_________________________返回一個包含該Collection所有元素的數(shù)組,數(shù)組類型和指定數(shù)組的類型一致

Map接口方法

 boolean containsKey(Object key)________________該映射是否包含指定鍵值
 boolean containsValue(Object value)____________如果該鍵值對中有一個或多個key射到指定值,則返回 true
 Set<Map.Entry<K,V>> entrySet()_________________返回此映射中包含的映射關(guān)系的 Set 視圖。
 Set<K> keySet()________________________________返回此映射中所有鍵的 Set 視圖。
 Collection<V> values()_________________________返回一個此映射中包含的值的 Collection
 V get(Object key)______________________________返回指定鍵映射的值。如果不存在,則返回 null
 V put(K key, V value)__________________________放入一個鍵值對(key-value)
 void putAll(Map<? extends K,? extends V> m)____把指定映射的所有映射關(guān)系復(fù)制到此映射中
 boolean isEmpty()______________________________如果此映射未包含鍵值映射關(guān)系,則返回 true
 boolean equals(Object o)_______________________比較指定的對象與此映射是否相等
 int size()_____________________________________返回此映射中的鍵-值映射關(guān)系數(shù)
 int hashCode()_________________________________返回此映射的哈希碼值

以上這篇Java中具有映射關(guān)系的容器:數(shù)組和Map的區(qū)別說明就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    List、Map、Set接口在Java中的存取元素特點(diǎn)詳細(xì)探討

    在Java編程語言中集合框架是處理對象組的重要工具,主要包括List、Set和Map接口,這些接口及其實(shí)現(xiàn)類提供了豐富的功能,這篇文章主要給大家介紹了關(guān)于List、Map、Set接口在Java中的存取元素特點(diǎn),需要的朋友可以參考下
    2024-08-08
  • 詳解Springboot如何優(yōu)雅的進(jìn)行數(shù)據(jù)校驗(yàn)

    詳解Springboot如何優(yōu)雅的進(jìn)行數(shù)據(jù)校驗(yàn)

    基于?Spring?Boot?,如何“優(yōu)雅”的進(jìn)行數(shù)據(jù)校驗(yàn)?zāi)?,本文將待大家詳?xì)介紹Springboot如何優(yōu)雅的進(jìn)行數(shù)據(jù)校驗(yàn),文中有詳細(xì)的代碼示例和流程步驟,需要的朋友可以參考下
    2023-06-06
  • ES多條件查詢寫法舉例

    ES多條件查詢寫法舉例

    這篇文章主要給大家介紹了關(guān)于ES多條件查詢的相關(guān)資料,Elasticsearch多條件查詢是指在查詢數(shù)據(jù)時,可以同時使用多個條件來篩選數(shù)據(jù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • mybatis-plus查詢源碼詳解

    mybatis-plus查詢源碼詳解

    這篇文章主要介紹了mybatis-plus查詢源碼解讀,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Java生成由時間組成的訂單號方式

    Java生成由時間組成的訂單號方式

    這篇文章主要介紹了Java生成由時間組成的訂單號方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Dubbo異步調(diào)用的實(shí)現(xiàn)介紹

    Dubbo異步調(diào)用的實(shí)現(xiàn)介紹

    dubbo默認(rèn)使用同步的方式調(diào)用。但在有些特殊的場景下,我們可能希望異步調(diào)用dubbo接口,從而避免不必要的等待時間,這時候我們就需要用到異步。那么dubbo的異步是如何實(shí)現(xiàn)的呢?下面就來看看這個問題
    2022-09-09
  • Java 自定義注解及利用反射讀取注解的實(shí)例

    Java 自定義注解及利用反射讀取注解的實(shí)例

    下面小編就為大家?guī)硪黄狫ava 自定義注解及利用反射讀取注解的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 基于Mybatis實(shí)現(xiàn)動態(tài)數(shù)據(jù)源切換的示例代碼

    基于Mybatis實(shí)現(xiàn)動態(tài)數(shù)據(jù)源切換的示例代碼

    在當(dāng)今的互聯(lián)網(wǎng)應(yīng)用中,微服務(wù)大行其道,隨著業(yè)務(wù)的發(fā)展和擴(kuò)展,單一的數(shù)據(jù)庫無法滿足日益增長的數(shù)據(jù)需求,本文將基于 JDK17 + Spring Boot 3 和 MyBatis 框架實(shí)現(xiàn)動態(tài)切換數(shù)據(jù)源功能,需要的朋友可以參考下
    2024-09-09
  • Java7之forkjoin簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    Java7之forkjoin簡介_動力節(jié)點(diǎn)Java學(xué)院整理

    Java7引入了Fork Join的概念,來更好的支持并行運(yùn)算。接下來通過本文給大家分享Java7之forkjoin簡介,感興趣的朋友一起看看吧
    2017-06-06
  • spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報錯的解決

    spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報錯的解決

    這篇文章主要介紹了spring cloud gateway轉(zhuǎn)發(fā)服務(wù)報錯的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09

最新評論