Hashmat
这个也可以是一种集合,里面也有往这个Hashmat里面添加元素,查看元素的方法,并且这个Hashmat还有一个其他集合没有的特点,它里面可以存值,但是他的存值和别的集合存值方式有点不一样,比如array list集合可以存取的一个空间里面只有这个的时候一个元素并且可以元素重复,但是Hashmat往这个里面一个空间可以存取两个值,一个是key主键,并且key键值是不可以重复的,就跟人们的身份证一样,不可以重复,当然arraylist调用里面的元素是根据索引值的,但是Hashmat这个是根据键值来调用的,如果我们在创建Hashmat这个的时候我们没有给指定长度的话,系统会自动声明一个长度为16的,他还有一个加载因子,加载因子回事0.75,也就是内存到长度的0.75部分的时候,这个Hashmat会自动扩容。
集合遍历的方法也有点特别呢,
public class HashMapStudy {
public static void main(String[] args) {
//一般来说,最好初始化一下, 小于12的就不要初始化了
// 默认的就是16,因为加载因子是0.75,也就是到16*0.75=12的时候会扩容
Map<String, String> map = new HashMap<>(3);
map.put("welcome","to");
map.put("java","study");
map.put("wechat","best396975802");
//遍历方法1: 先遍历key , 再取出value
System.out.println("遍历方法1: 先遍历key , 再取出value");
for (String key : map.keySet()) {
System.out.println("key is "+key);
System.out.println("value is "+ map.get(key));
}//遍历方法2: 直接遍历value
System.out.println("遍历方法2: 直接遍历value");
for (String value : map.values()) {
System.out.println("value is "+value);
}
//遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!
System.out.println("遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key is "+entry.getKey());
System.out.println("value is "+ entry.getValue());
}
//遍历方法4: 通过forEach方法直接遍历key和value
System.out.println("遍历方法4: 通过forEach方法直接遍历");
map.forEach((key,value)->{
System.out.println("key is "+ key);
System.out.println("value is "+ value);
});}
}
案例: Hashmat<String String> Sh=new Hashmat<>(长度);//如果声明长度用的是“字符串”,那么长度就是这个字符串的长度加十六也就是3+16就是18.
Sh.put(key value)//这是往里面添加内容用的
Sh.put("1","你好")
第一种遍历:就是直接输出Hashmat
这种方法就是直接输出里面的内容,一组一组的输出的,先输出一组中的键值也就是key对应的那个参数,其次之后输出value这给参数的值
System.out.println(Sh);//这就可以了,结果是这样的根据我们添加的顺序来遍历,一组和一组之间"逗号"隔开然后展现方式是:
跟这种格式类似。
第二种遍历直接遍历value值,也就是:
for(String value:Sh.values){
System.out.println(value);
只遍历了Hashmat中的value的值
}
第三种遍历通过遍历entry来取Key和value,推荐的方法!!!:
//遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!
System.out.println("遍历方法3: 通过遍历entry来取Key和value,推荐的方法!!!");
for (Map.Entry<String, String> entry : map.entrySet()) {
System.out.println("key is "+entry.getKey());
System.out.println("value is "+ entry.getValue());
}
4.通过forEach方法直接遍历:
Hashmat名称.forEach((key,value))->{
System.out.println(key);
System.out.println(value);
}
在我们工作中,这个Hashmat用的挺多的,建议你们多多了解这东西。