成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Map學(xué)習(xí)二之LinkedHash,HashTable,計(jì)算一個(gè)給定字符串的每個(gè)字符出現(xiàn)的次數(shù)

Rocture / 956人閱讀

package com.itheima.demo03.Map;

import java.util.HashMap;
import java.util.LinkedHashMap;

/*

java.util.LinkedHashMap entends HashMap
Map 接口的哈希表和鏈接列表實(shí)現(xiàn),具有可預(yù)知的迭代順序。
底層原理:
    哈希表+鏈表(記錄元素的順序)

*/
public class Demo01LinkedHashMap {

public static void main(String[] args) {
    HashMap map = new HashMap<>();
    map.put("a","a");
    map.put("c","c");
    map.put("b","b");
    map.put("a","d");
    System.out.println(map);// key不允許重復(fù),無(wú)序 {a=d, b=b, c=c}

    LinkedHashMap linked = new LinkedHashMap<>();
    linked.put("a","a");
    linked.put("c","c");
    linked.put("b","b");
    linked.put("a","d");
    System.out.println(linked);// key不允許重復(fù),有序 {a=d, c=c, b=b}
}

}

package com.itheima.demo03.Map;

import java.util.HashMap;
import java.util.Hashtable;

/*

java.util.Hashtable集合 implements Map接口

Hashtable:底層也是一個(gè)哈希表,是一個(gè)線程安全的集合,是單線程集合,速度慢
HashMap:底層是一個(gè)哈希表,是一個(gè)線程不安全的集合,是多線程的集合,速度快

HashMap集合(之前學(xué)的所有的集合):可以存儲(chǔ)null值,null鍵
Hashtable集合,不能存儲(chǔ)null值,null鍵

Hashtable和Vector集合一樣,在jdk1.2版本之后被更先進(jìn)的集合(HashMap,ArrayList)取代了
Hashtable的子類Properties依然活躍在歷史舞臺(tái)
Properties集合是一個(gè)唯一和IO流相結(jié)合的集合

*/
public class Demo02Hashtable {

public static void main(String[] args) {
    HashMap map = new HashMap<>();
    map.put(null,"a");
    map.put("b",null);
    map.put(null,null);
    System.out.println(map);//{null=null, b=null}

    Hashtable table = new Hashtable<>();
    //table.put(null,"a");//NullPointerException
    //table.put("b",null);//NullPointerException
    table.put(null,null);//NullPointerException
}

}

package com.itheima.demo03.Map;

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

/*

練習(xí):
    計(jì)算一個(gè)字符串中每個(gè)字符出現(xiàn)次數(shù)

分析:
    1.使用Scanner獲取用戶輸入的字符串
    2.創(chuàng)建Map集合,key是字符串中的字符,value是字符的個(gè)數(shù)
    3.遍歷字符串,獲取每一個(gè)字符
    4.使用獲取到的字符,去Map集合判斷key是否存在
        key存在:
            通過字符(key),獲取value(字符個(gè)數(shù))
            value++
            put(key,value)把新的value存儲(chǔ)到Map集合中
        key不存在:
            put(key,1)
    5.遍歷Map集合,輸出結(jié)果

*/
public class Demo03MapTest {

public static void main(String[] args) {
    //1.使用Scanner獲取用戶輸入的字符串
    Scanner sc = new Scanner(System.in);
    System.out.println("請(qǐng)輸入一個(gè)字符串:");
    String str = sc.next();
    //2.創(chuàng)建Map集合,key是字符串中的字符,value是字符的個(gè)數(shù)
    HashMap map = new HashMap<>();
    //3.遍歷字符串,獲取每一個(gè)字符
    //注意這里的char
    for(char c :str.toCharArray()){
        //4.使用獲取到的字符,去Map集合判斷key是否存在
        if(map.containsKey(c)){
            //key存在
            Integer value = map.get(c);
            value++;
            map.put(c,value);
        }else{
            //key不存在
            map.put(c,1);
        }
    }
    //5.遍歷Map集合,輸出結(jié)果
    //注意這里的Character
    for(Character key :map.keySet()){
        Integer value = map.get(key);
        System.out.println(key+"="+value);
    }
}

}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/75302.html

相關(guān)文章

  • 【3y】從零單排學(xué)Redis【青銅】

    摘要:從代碼上看字典也是在哈希表基礎(chǔ)上再抽象了一層而已。在中,哈希表實(shí)際上就是數(shù)組鏈表的形式來構(gòu)建的。后,在哈希沖突時(shí)是將新的節(jié)點(diǎn)添加到鏈表的表尾。在對(duì)哈希表進(jìn)行擴(kuò)展或者收縮操作時(shí),過程并不是一次性地完成的,而是漸進(jìn)式地完成的。 前言 只有光頭才能變強(qiáng) showImg(https://segmentfault.com/img/remote/1460000016837794); 最近在學(xué)Red...

    lookSomeone 評(píng)論0 收藏0
  • Java編程基礎(chǔ)19——Map集合&斗地主案例

    摘要:使用默認(rèn)隨機(jī)源對(duì)指定列表進(jìn)行置換。將集合排序使用二分搜索法搜索指定列表,以獲得指定對(duì)象根據(jù)元素的自然順序,返回給定的最大元素。 1_Map集合概述和特點(diǎn) A:Map接口概述 查看API可以知道: 將鍵映射到值的對(duì)象 一個(gè)映射不能包含重復(fù)的鍵 每個(gè)鍵最多只能映射到一個(gè)值 B:Map接口和Collection接口的不同 Map是雙列的,Collection是單列的 Map...

    ygyooo 評(píng)論0 收藏0
  • Java集合框架——Map接口

    摘要:第三階段常見對(duì)象的學(xué)習(xí)集合框架集合在實(shí)際需求中,我們常常會(huì)遇到這樣的問題,在諸多的數(shù)據(jù)中,通過其編號(hào)來尋找某一些信息,從而進(jìn)行查看或者修改,例如通過學(xué)號(hào)查詢學(xué)生信息。面試題和的區(qū)別是單列集合的頂層接口,有子接口和。 第三階段 JAVA常見對(duì)象的學(xué)習(xí) 集合框架——Map集合 showImg(https://segmentfault.com/img/remote/1460000019683...

    princekin 評(píng)論0 收藏0
  • Javascript數(shù)組系列二之迭代方法1

    摘要:我們?cè)跀?shù)組系列一之棧與隊(duì)列中介紹了一些數(shù)組的用法。該方法接受兩個(gè)參數(shù),一個(gè)是元素每一項(xiàng)執(zhí)行的回調(diào)函數(shù),一個(gè)是可選參數(shù),回調(diào)函數(shù)運(yùn)行時(shí)的值。今天我們就說這么多,希望你有所收獲,接下來還請(qǐng)繼續(xù)關(guān)注,我們繼續(xù)來說數(shù)組的其他一系列的方法。 我們?cè)凇禷vascript數(shù)組系列一之棧與隊(duì)列》中介紹了一些數(shù)組的用法。比如:數(shù)組如何表現(xiàn)的和「?!挂粯?,用什么方法表現(xiàn)的和「隊(duì)列」一樣等等一些方法,因?yàn)?...

    tylin 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

Rocture

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<