最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JAVA集合框架Map特性及實(shí)例解析

 更新時(shí)間:2020年04月04日 12:43:35   作者:冬至未霜  
這篇文章主要介紹了JAVA集合框架Map特性及實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一  Map特性:

  1 Map提供一種映射關(guān)系,其中的元素是以鍵值對(duì)(key-value)的形式存儲(chǔ)的,能夠?qū)崿F(xiàn)根據(jù)key快速查找value;

  2 Map中鍵值對(duì)以Entry類型的對(duì)象實(shí)例形式存在;

  3 鍵,即key不可重復(fù),但是value值可以;

  4 每個(gè)鍵最多只能映射一個(gè)值;

  5 Map接口提供了分別返回key值集合、value值集合以及Entry(鍵值對(duì))集合的方法;

  6 Map支持泛型,形式如:Map<K,V>

二  HashMap類:

  1 HashMap是Map的一個(gè)重要實(shí)現(xiàn)類,也是最常用的,基于哈希表實(shí)現(xiàn);

  2 HashMap中的Entry對(duì)象是無(wú)序排列的;

  3 Key值和Value值都可以為null,但是HashMap中只能有一個(gè)Key值為null的映射(key值不可重復(fù));

示例:

package com.collection;

import java.util.HashMap;
import java.util.Set;
import java.util.Scanner;

public class MapTest {

  public HashMap<String,Student> students = new HashMap<String,Student>();

  /*
  * 新建學(xué)生到Map中
  * */
  public void addStudent(){
    //先添加三個(gè)學(xué)生
    Scanner console = new Scanner(System.in);
    int i = 0;
    while(i<3){
      System.out.println("請(qǐng)輸入學(xué)生ID:");
      String id = console.next();
      Student s = students.get(id);
      if(s == null){
        System.out.println("請(qǐng)輸入學(xué)生姓名:");
        String name = console.next();
        Student student = new Student(Integer.parseInt(id),name);
        students.put(id,student);
        System.out.println("添加了學(xué)生:"+student.id+"-"+student.name);
        i++;
      }else{
        System.out.println("該ID已經(jīng)被占用");
        continue;
      }
    }
  }

  /*
  * 試用HashMap的keySet方法
  *
  * 順便遍歷Students
  * */
  public void forEachStudents(){
    Set<String> ks = students.keySet();
    System.out.println("共有學(xué)生數(shù)量"+students.size()+"個(gè),具體如下:");
    for(String key: ks){
      Student student = students.get(key);
      if( student != null){
        System.out.println("學(xué)生ID:"+student.id+"-學(xué)生姓名:"+student.name);
      }
    }
  }

  public static void main(String[] args){
    MapTest mt = new MapTest();
    mt.addStudent();
    mt.forEachStudents();
  }
}

其中Student類如下:

package com.collection;

import java.util.HashSet;
import java.util.Set;

public class Student {
  public int id;
  public String name;

  //set中添加某個(gè)對(duì)象無(wú)論添加多少次,最終只會(huì)保留一個(gè)該對(duì)象(的引用),并且,保留的是第一次添加的那個(gè)

  public Set<Course> course = new HashSet<Course>();

  public Student(int id, String name){
    this.id = id;
    this.name = name;
  }

}

返回結(jié)果:

請(qǐng)輸入學(xué)生ID:
請(qǐng)輸入學(xué)生姓名:
劉備
添加了學(xué)生:1-劉備
請(qǐng)輸入學(xué)生ID:
請(qǐng)輸入學(xué)生姓名:
關(guān)羽
添加了學(xué)生:2-關(guān)羽
請(qǐng)輸入學(xué)生ID:
請(qǐng)輸入學(xué)生姓名:
張飛
添加了學(xué)生:3-張飛
共有學(xué)生數(shù)量3個(gè),具體如下:
學(xué)生ID:1-學(xué)生姓名:劉備
學(xué)生ID:2-學(xué)生姓名:關(guān)羽
學(xué)生ID:3-學(xué)生姓名:張飛

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 一起來(lái)學(xué)習(xí)JAVA的運(yùn)算符

    一起來(lái)學(xué)習(xí)JAVA的運(yùn)算符

    這篇文章主要為大家詳細(xì)介紹了JAVA的運(yùn)算符,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • Java并發(fā)工具類之CountDownLatch詳解

    Java并發(fā)工具類之CountDownLatch詳解

    這篇文章主要介紹了Java并發(fā)工具類之CountDownLatch詳解,CountDownLatch可以使一個(gè)獲多個(gè)線程等待其他線程各自執(zhí)行完畢后再執(zhí)行,CountDownLatch可以解決那些一個(gè)或者多個(gè)線程在執(zhí)行之前必須依賴于某些必要的前提業(yè)務(wù)先執(zhí)行的場(chǎng)景,需要的朋友可以參考下
    2023-12-12
  • Java調(diào)用MySQL存儲(chǔ)過程并獲得返回值的方法

    Java調(diào)用MySQL存儲(chǔ)過程并獲得返回值的方法

    這篇文章主要介紹了Java調(diào)用MySQL存儲(chǔ)過程并獲得返回值的方法,實(shí)例分析了java實(shí)現(xiàn)MySQL存儲(chǔ)過程的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 詳解SpringBoot注解讀取配置文件的方式

    詳解SpringBoot注解讀取配置文件的方式

    這篇文章主要介紹了詳解SpringBoot注解讀取配置文件的方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • idea使用Vim的技巧大全分享

    idea使用Vim的技巧大全分享

    vim是一個(gè)高度可配置的文本編輯器,非常穩(wěn)定,可以高效的創(chuàng)建任何文本、持久的、多級(jí)撤銷樹、支持?jǐn)?shù)百種變成語(yǔ)言和格式、與許多工具集成,本文給大家分享了idea使用Vim的技巧大全,需要的朋友可以參考下
    2024-05-05
  • Python爬蟲 12306搶票開源代碼過程詳解

    Python爬蟲 12306搶票開源代碼過程詳解

    這篇文章主要介紹了Python爬蟲 12306搶票開源代碼過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java SpringBoot攔截器詳解

    Java SpringBoot攔截器詳解

    這篇文章主要介紹了Java SpringBoot攔截器的使用方法詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2021-10-10
  • 淺談Java基準(zhǔn)性能測(cè)試之JMH

    淺談Java基準(zhǔn)性能測(cè)試之JMH

    JMH是Java Microbenchmark Harness的簡(jiǎn)稱,一個(gè)針對(duì)Java做基準(zhǔn)測(cè)試的工具。想準(zhǔn)確的對(duì)一段代碼做基準(zhǔn)性能測(cè)試并不容易,因?yàn)镴VM層面在編譯期、運(yùn)行時(shí)對(duì)代碼做很多優(yōu)化,當(dāng)代碼塊處于整個(gè)系統(tǒng)中運(yùn)行時(shí)并不一定會(huì)生效,產(chǎn)生錯(cuò)誤的基準(zhǔn)測(cè)試結(jié)果,這個(gè)問題就是JMH要解決的
    2021-06-06
  • druid升級(jí)后sql監(jiān)控頁(yè)面為空白的解決

    druid升級(jí)后sql監(jiān)控頁(yè)面為空白的解決

    這篇文章主要介紹了druid升級(jí)后sql監(jiān)控頁(yè)面為空白的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • SpringBoot使用Interceptor攔截器的實(shí)例

    SpringBoot使用Interceptor攔截器的實(shí)例

    這篇文章主要介紹了SpringBoot使用Interceptor攔截器的相關(guān)知識(shí),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03

最新評(píng)論

来凤县| 原平市| 上杭县| 上饶市| 宁城县| 永仁县| 科技| 临湘市| 友谊县| 合川市| 白沙| 大同市| 泰和县| 福清市| 阳新县| 保亭| 蓬安县| 泽库县| 西藏| 太仆寺旗| 湘潭市| 岳西县| 鲁山县| 鹤山市| 镇远县| 屯昌县| 水城县| 鲁甸县| 化德县| 鞍山市| 邵阳县| 吉林省| 巴塘县| 阿荣旗| 长寿区| 蕉岭县| 铁力市| 安徽省| 屏东市| 昌都县| 商河县|