Map集合体系
HashMap集合的底层原理
HashMap集合底层是基于哈希表实现的
LinkedHashMap集合的底层原理
TreeMap集合的底层原理
代码:
Student类
package com. itheima. day26_Map_impl ;
import java. util. Objects ;
public class Student implements Comparable < Student > {
private String name;
private int age;
private double height;
@Override
public String toString ( ) {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", height=" + height +
'}' ;
}
@Override
public 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 && Double . compare ( height, student. height) == 0 && Objects . equals ( name, student. name) ;
}
@Override
public int hashCode ( ) {
return Objects . hash ( name, age, height) ;
}
public Student ( ) {
}
public Student ( String name, int age, double height) {
this . name = name;
this . age = age;
this . height = height;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getAge ( ) {
return age;
}
public void setAge ( int age) {
this . age = age;
}
public double getHeight ( ) {
return height;
}
public void setHeight ( double height) {
this . height = height;
}
@Override
public int compareTo ( Student o) {
return this . age - o. age;
}
}
代码一:掌握Map集合下的实现类:HashMap集合的底层原理
package com. itheima. day26_Map_impl ;
import java. util. HashMap ;
public class HashMapTest1 {
public static void main ( String [ ] args) {
HashMap < Student , String > map = new HashMap < > ( ) ;
map. put ( new Student ( "蜘蛛精" , 25 , 168.5 ) , "盘丝洞" ) ;
map. put ( new Student ( "蜘蛛精" , 25 , 168.5 ) , "水帘洞" ) ;
map. put ( new Student ( "至尊宝" , 27 , 178.5 ) , "水帘洞" ) ;
map. put ( new Student ( "牛魔王" , 28 , 188.5 ) , "牛头山" ) ;
System . out. println ( map) ;
}
}
代码二:目标:掌握LinkedHashMap的底层原理
package com. itheima. day26_Map_impl ;
import java. util. LinkedHashMap ;
import java. util. Map ;
public class LinkedHashMapTest1 {
public static void main ( String [ ] args) {
Map < String , Integer > map = new LinkedHashMap < > ( ) ;
map. put ( "手机" , 128 ) ;
map. put ( "手机" , 222 ) ;
map. put ( "笔记本" , 666 ) ;
map. put ( "手表" , 999 ) ;
map. put ( null , null ) ;
System . out. println ( map) ;
}
}
代码三:掌握TreeMap集合的使用
package com. itheima. day26_Map_impl ;
import java. util. Comparator ;
import java. util. Map ;
import java. util. TreeMap ;
public class TreeMapTest {
public static void main ( String [ ] args) {
Map < Student , String > map = new TreeMap < > ( new Comparator < Student > ( ) {
@Override
public int compare ( Student o1, Student o2) {
return Double . compare ( o1. getHeight ( ) , o2. getHeight ( ) ) ;
}
} ) ;
map. put ( new Student ( "蜘蛛精" , 25 , 168.5 ) , "盘丝洞" ) ;
map. put ( new Student ( "蜘蛛精" , 25 , 168.5 ) , "水帘洞" ) ;
map. put ( new Student ( "至尊宝" , 27 , 178.5 ) , "水帘洞" ) ;
map. put ( new Student ( "牛魔王" , 28 , 188.5 ) , "牛头山" ) ;
System . out. println ( map) ;
}
}