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)
;
}
}
