国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

我們的網(wǎng)站長沙網(wǎng)站制作公司哪家好

我們的網(wǎng)站,長沙網(wǎng)站制作公司哪家好,??诰W(wǎng)站建設兼職,8免費建站網(wǎng)站🎊專欄【Java基礎】 🍔喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。 🎆音樂分享【The truth that you leave】 🥰歡迎并且感謝大家指出我的問題 文章目錄 🌺雙列集合的特點🎄Map🍔Ma…

🎊專欄【Java基礎】
🍔喜歡的詩句:更喜岷山千里雪 三軍過后盡開顏。
🎆音樂分享【The truth that you leave】
🥰歡迎并且感謝大家指出我的問題

文章目錄

  • 🌺雙列集合的特點
  • 🎄Map
  • 🍔Map常用的API
    • ?創(chuàng)建Map集合的對象
    • ?添加元素
      • ?注意
    • ?移除元素
    • ?清空元素
    • ?判斷是否存在某個 鍵 / 值
    • ?判斷集合是否為空
    • ?判斷集合的長度
  • 🍔Map的遍歷方式
    • ?方法一:鍵找值
    • ?方法二:鍵值對
      • ?分析一下Map.Entry<String,String>
    • ?方法三:Lambda表達式
      • ?分析一下new BiConsumer<String, String>()
  • 🎄HashMap
  • 🍔特點
  • 🍔例子
    • ?注意
  • 🎄LinkHashMap
  • 🍔特點
  • 🎄TreeMap
  • 🍔特點
    • ?兩種排序規(guī)則

在這里插入圖片描述

🌺雙列集合的特點

在這里插入圖片描述

  1. 雙列集合一次需要存一對數(shù)據(jù),分別是鍵和值
  2. 鍵不能重復,值可以重復
  3. 鍵和值是一一對應的,每一個鍵都能找到自己對應的值
  4. 鍵+值 這個整體我們稱為"鍵值對"或者"鍵值對對象",在Java中稱為"Entry對象"

🎄Map

🍔Map常用的API

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

在這里插入圖片描述

?添加元素

put("元素1","元素2");

在這里插入圖片描述

?注意

在添加元素的時候,如果鍵不存在,那么直接把 鍵值對對象 添加到map集合中,方法返回null
在添加元素的時候,如果鍵是存在的,那么會把 原來的鍵值對對象覆蓋,把被覆蓋的值進行返回
在這里插入圖片描述

?移除元素

remove("元素");

在這里插入圖片描述

?清空元素

clear();

在這里插入圖片描述

?判斷是否存在某個 鍵 / 值

在這里插入圖片描述

?判斷集合是否為空

在這里插入圖片描述

?判斷集合的長度

size();

在這里插入圖片描述

🍔Map的遍歷方式

?方法一:鍵找值

package com.practice;import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class practicedemo {public static void main(String[] args) {Map<String,String>map=new HashMap<>();map.put("1","2");map.put("3","4");map.put("5","6");//通過鍵找值//獲取所有的鍵,把這些鍵都放到一個單列集合中Set<String>keys=map.keySet();for(String key:keys){//利用map集合中的鍵獲取對應的值 getString value=map.get(key);System.out.println(key+"="+value);}}
}

在這里插入圖片描述

?方法二:鍵值對

package com.practice;import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class practicedemo {public static void main(String[] args) {Map<String,String>map=new HashMap<>();map.put("1","2");map.put("3","4");map.put("5","6");//通過鍵值對//獲取所有的鍵值對對象,返回一個Set集合Set<Map.Entry<String,String>> entries = map.entrySet();//遍歷entries這個集合,去得到里面的每一個鍵值對對象for (Map.Entry<String,String>entry:entries){//通過entry調用get方法獲取鍵和值String key=entry.getKey();String value=entry.getValue();System.out.println(key+"+"+value);}}
}

在這里插入圖片描述

?分析一下Map.Entry<String,String>

在這里插入圖片描述
所以我們在表示Entry類型的時候,要使用Map(外部接口) . Entry去調用一下

?方法三:Lambda表達式

package com.practice;import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;public class practicedemo {public static void main(String[] args) {Map<String,String>map=new HashMap<>();map.put("1","2");map.put("3","4");map.put("5","6");//通過lambda表達式//匿名內部類的方式map.forEach(new BiConsumer<String, String>() {@Overridepublic void accept(String s, String s2) {System.out.println(s+"="+s2);}});System.out.println("----------------------------");map.forEach((String s, String s2) -> {System.out.println(s+"="+s2);});System.out.println("----------------------------");map.forEach(( s, s2) -> System.out.println(s+"="+s2));}
}

在這里插入圖片描述

?分析一下new BiConsumer<String, String>()

為什么是new BiConsumer<String, String>()

我們來查看一下forEach的源碼
在這里插入圖片描述
繼續(xù)查看BiConsumer的源碼

在這里插入圖片描述

Lambda表達式只能用于實現(xiàn)只有一個抽象方法的接口,因為BiConsumer是一個接口,所以可以使用Lambda表達式

🎄HashMap

🍔特點

  • HashMap是Map里面的一個實現(xiàn)類
  • 方法可以直接使用Map里面的方法
  • 特點都是由 鍵 決定的:無序,不重復,無索引

🍔例子

?注意

  • HashMap底層是哈希表結構的
  • 依賴hashCode方法和equals方法保證鍵的唯一
  • 如果存儲的是自定義對象,需要重寫hashCode和equals方法
  • 如果存儲的是自定義對象,不需要重寫hashCode和equals方法

Student.java

package com.itheima.a02myhashmap;import java.util.Objects;public class Student {private String name;private int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}/*** 獲取* @return name*/public String getName() {return name;}/*** 設置* @param name*/public void setName(String name) {this.name = name;}/*** 獲取* @return age*/public int getAge() {return age;}/*** 設置* @param age*/public void setAge(int age) {this.age = age;}@Overridepublic boolean equals(Object o) {if (this == o) return true;if (o == null || getClass() != o.getClass()) return false;Student student = (Student) o;return age == student.age && Objects.equals(name, student.name);}@Overridepublic int hashCode() {//return Objects.hash(name, age);return name.hashCode();}public String toString() {return "Student{name = " + name + ", age = " + age + "}";}
}

A01_HashMapDemo1.java

package com.itheima.a02myhashmap;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class A01_HashMapDemo1 {public static void main(String[] args) {/*需求:創(chuàng)建一個HashMap集合,鍵是學生對象(Student),值是籍貫(String)。存儲三個鍵值對元素,并遍歷要求:同姓名,同年齡認為是同一個學生核心點:HashMap的鍵位置如果存儲的是自定義對象,需要重寫hashCode和equals方法。*///1.創(chuàng)建HashMap的對象HashMap<Student,String> hm = new HashMap<>();//2.創(chuàng)建三個學生對象Student s1 = new Student("zhangsan",23);Student s2 = new Student("lisi",24);Student s3 = new Student("wangwu",25);Student s4 = new Student("wangwu",25);//3.添加元素hm.put(s1,"江蘇");hm.put(s2,"浙江");hm.put(s3,"福建");hm.put(s4,"山東");//4.遍歷集合Set<Student> keys = hm.keySet();for (Student key : keys) {String value = hm.get(key);System.out.println(key + "=" + value);}System.out.println("--------------------------");Set<Map.Entry<Student, String>> entries = hm.entrySet();for (Map.Entry<Student, String> entry : entries) {Student key = entry.getKey();String value = entry.getValue();System.out.println(key + "=" + value);}System.out.println("--------------------------");hm.forEach((student, s)-> System.out.println(student + "=" +  s));}
}

在這里插入圖片描述

🎄LinkHashMap

🍔特點

  • 由鍵決定:有序,不重復,無索引
  • 這里的有序是指保證存儲和取出的元素順序一致

在這里插入圖片描述

🎄TreeMap

🍔特點

  • TreeMap和TreeSet底層原理一樣,都是紅黑樹結構的
  • 由鍵決定特性:不重復,無索引,可排序
  • 可排序是可以對鍵進行排序,默認按照鍵從小到大排序,也可以自己定義鍵的排序規(guī)則

?兩種排序規(guī)則

  • 實現(xiàn)Comparable接口,指定比較規(guī)則
  • 創(chuàng)建集合時傳遞Comparator比較器對象,指定比較規(guī)則

默認是升序排列
在這里插入圖片描述
加上比較器后,可以變成降序排序

在這里插入圖片描述

對比一下
HashMap效率高但是TreeMap可以排序,使用時要有所甄別

http://m.aloenet.com.cn/news/32168.html

相關文章:

  • 微信php網(wǎng)站開發(fā)流程人民網(wǎng) 疫情
  • 網(wǎng)絡工作室起名seo主管招聘
  • 學建網(wǎng)站 必須學那些知識seo網(wǎng)絡推廣優(yōu)化
  • 聊城網(wǎng)站建設上饒seo博客
  • 廣安市國土資源局網(wǎng)站建設推廣通
  • ps做網(wǎng)站主頁圖片怎樣在百度上免費做廣告
  • 購物網(wǎng)站設計目的小吳seo博客
  • ssp網(wǎng)站怎么做最快新聞資訊在哪看
  • 云南房產網(wǎng)站建設seo基礎入門教程
  • jsp寫的網(wǎng)站營銷型網(wǎng)站建設運營
  • 北京多用戶商城網(wǎng)站建設百度 seo 工具
  • 做網(wǎng)站常用到的css標簽最新疫情最新情況
  • 昆明網(wǎng)站建設貓咪網(wǎng)絡營銷技巧培訓
  • 加強信息網(wǎng)站建設希愛力
  • 級a做爰片免費視網(wǎng)站看看谷歌seo培訓
  • 網(wǎng)站開發(fā)有那些費用推廣互聯(lián)網(wǎng)推廣
  • 廣平網(wǎng)站建設seo顧問服務公司站長
  • wordpress模板導出重慶seo哪個強
  • 昆明網(wǎng)站建設搜q.479185700百度關鍵詞推廣公司哪家好
  • 公司網(wǎng)站建設的通知酒店網(wǎng)絡營銷推廣方式
  • 攝影網(wǎng)站開發(fā)背景怎么寫云搜索
  • 洛陽網(wǎng)站建設設計公司百度貼吧熱線客服24小時
  • jsp網(wǎng)站安全性電商運營培訓大概多少學費
  • 中企動力科技股份有限公司是做什么的優(yōu)化手機性能的軟件
  • 做網(wǎng)站賣草坪賺錢嗎精準營銷推廣方案
  • 網(wǎng)站備案有效期免費下載優(yōu)化大師
  • 做網(wǎng)站600網(wǎng)絡營銷模式有哪些
  • 網(wǎng)站制作的一般步驟是什么百度百科搜索入口
  • 利用別人域名做自己的網(wǎng)站可以免費推廣的平臺
  • 公司網(wǎng)站設計怎么做b站視頻推廣怎么買