Map介绍以及常⽤的四种⽅法
马凡舒身高
Map
Map介绍:
Map<k,v>集合
Map集合的特点
1.Map集合是⼀个双列集合,⼀个元素包含两个值(⼀个key,⼀个value)
2.Map集合中的元素,key和value的数据类型可以是相同的也可以是不同的
3.Map集合中的元素,key是不允许重复的,value是可以重复的
4.Map集合中的元素,key和value是⼀⼀对应的
java.util.HashMap<K,V>集合implements Map<K,V>接⼝
特点:
底层是哈希表,查询的速度特别快
1jdk1.8之前:数组+单链表
jdk1.8之后:数组+单向链表/红⿊树(链表的长度超过8):提⾼查询速度
2基于哈希表的实现的Map接⼝。 此实现提供了所有可选的地图操作,并允许null的值和null键。 ( HashMap类⼤致相当于Hashtable ,除了它是不同步的,并允许null)。这个类不能保证地图的顺序; 特别是,它不能保证订单在⼀段时间内保持不变。 */ //public class LinkedHashMap<K,V>
//extends HashMap<K,V>
//implements Map<K,V>
//特点:集合底层是哈希表+链表(保证迭代的顺序)
//2.集合是⼀个有序的集合,存储元素和取出元素的顺序是⼀致的
1.Map的put⽅法
代码:
/*put(K key, V value)返回v值
将指定的值与该映射中的指定键相关联(可选操作)。*/
private static void demo01() {
Map<String ,String> map=new HashMap<>();
String v1 = map.put("李晨", "范冰冰1");
System.out.println("v1:"+v1);//v1:null,返回的map中key对应的v值
String v2 = map.put("李晨", "范冰冰2");
System.out.println("v2:"+v2);//v2:范冰冰1
System.out.println(map);
map.put("冷锋", "龙⼩云");
map.put("李晨", "李⼩璐");
map.put("李晨", "范冰冰");
map.put("中国:", "龙⼩云");怎样关闭手机自动弹出的广告
System.out.println(map);//{李晨=范冰冰, 中国:=龙⼩云, 冷锋=龙⼩云}key不重复,value可以重复!
}
注意
返回值虽然是value值,但是是Map中关键字已经包含的value值,key值是不允许重复的,所以,put同样的key值,value值是更新的,但是返回值却是原来key对应的值。
2.Map的get⽅法
代码:
/*V get(Object key)
返回到指定键所映射的值,或 null如果此映射包含该键的映射。 */
private static void demo03() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
电脑如何截屏map.put("迪丽热巴3",173 );
map.put("迪丽热巴4",174 );
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    Integer v1 = ("迪丽热巴4");
System.out.println("V1:"+v1);//V1:174
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    Integer v2 = ("迪丽热巴9");
System.out.println("V2:"+v2);//V2:null
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173} }
2.Map的remove⽅法
代码:
/*remove(Object key) 返回v值
如果存在(从可选的操作),从该地图中删除⼀个键的映射。*/
private static void demo02() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
map.put("迪丽热巴3",173 );
map.put("迪丽热巴4",174 );
System.out.println(map);
Integer v = ve("迪丽热巴2");
System.out.println("v:"+v);//v:172
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴3=173}
Integer v1 = ve("迪丽热巴9");
System.out.println("v1:"+v1);//v1:null
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴3=173}
}
4.Map的containskey⽅法
代码:
/*containsKey(Object key)
如果此映射包含指定键的映射,则返回 true 。*/
private static void demo04() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
map.put("迪丽热巴3",173 );潘蔚照片
map.put("迪丽热巴4",174 );
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    boolean b = ainsKey("迪丽热巴2");
System.out.println("b:"+b);//true
boolean b1 = ainsKey("迪丽热巴9");
System.out.println("b1:"+b1);//false
}
主⽅法分别调⽤各个⽅法:
public static void main(String[] args) {
demo01();
demo02();
demo03();
demo04();
}
完整代码:
public class Demo01Mao {
public static void main(String[] args) {
//demo01();
/
/demo02();
// demo03();
demo04();
}
/*containsKey(Object key)
如果此映射包含指定键的映射,则返回 true 。*/
private static void demo04() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
map.put("迪丽热巴3",173 );
map.put("迪丽热巴4",174 );
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    boolean b = ainsKey("迪丽热巴2");
System.out.println("b:"+b);//true
boolean b1 = ainsKey("迪丽热巴9");
System.out.println("b1:"+b1);//false
}
/*V get(Object key)
返回到指定键所映射的值,或 null如果此映射包含该键的映射。 */
private static void demo03() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
map.put("迪丽热巴3",173 );
map.put("迪丽热巴4",174 );
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    Integer v1 = ("迪丽热巴4");
System.out.println("V1:"+v1);//V1:174
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173}    Integer v2 = ("迪丽热巴9");
System.out.println("V2:"+v2);//V2:null
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴2=172, 迪丽热巴3=173} }
IP地址修改/*remove(Object key) 返回v值
如果存在(从可选的操作),从该地图中删除⼀个键的映射。*/
private static void demo02() {
Map<String ,Integer> map=new HashMap<>();
map.put("迪丽热巴1",171 );
map.put("迪丽热巴2",172 );
map.put("迪丽热巴3",173 );
map.put("迪丽热巴4",174 );
System.out.println(map);
Integer v = ve("迪丽热巴2");
System.out.println("v:"+v);//v:172
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴3=173}
Integer v1 = ve("迪丽热巴9");
System.out.println("v1:"+v1);//v1:null
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴3=173}
System.out.println(map);//{迪丽热巴1=171, 迪丽热巴4=174, 迪丽热巴3=173}
}
/*put(K key, V value)返回v值
将指定的值与该映射中的指定键相关联(可选操作)。*/
private static void demo01() {
个税申报Map<String ,String> map=new HashMap<>();
String v1 = map.put("李晨", "范冰冰1");
System.out.println("v1:"+v1);//v1:null,返回的map中key对应的v值
String v2 = map.put("李晨", "范冰冰2");
System.out.println("v2:"+v2);//v2:范冰冰1
System.out.println(map);
map.put("冷锋", "龙⼩云");
map.put("李晨", "李⼩璐");
map.put("李晨", "范冰冰");
map.put("中国:", "龙⼩云");
System.out.println(map);//{李晨=范冰冰, 中国:=龙⼩云, 冷锋=龙⼩云}key不重复,value可以重复!
}
}