Java实训学习之Map
程序员文章站
2022-07-05 20:36:56
...
package Test;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Maptest {
/*
* Map与Collection并列,数据关系:key-value
* Map的key用set存放,唯一,value可重复,相当于collection存储,两者组合后为Entry,是不可重复的
* list是collection的子接口,而collection与map并列
*
*
* map接口,不可进行实例化,需要new其实现类
* 以key-value 方式进行存储,key是唯一的,类似于学号,value可重复,类似于学生姓名
* map接口如何使用:
* HashMap 运行null键与null值,但key为空只能有一次,value为空则无妨
* 判断相等标准
* 两个key通过equal方法返回true,hashCode也相等,判key是否相同
* 两个value通过equal判断即可
* 另一个实现类 Hashtable 已淘汰
* 其不允许key null 与value null
* Propeties类是其子类,在数据库中使用 会将封装用户名,密码的代码封装在Propeties文件中,在使用时调用
* 即读取xxxx.Propeties文件信息
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
test2();
}
public static void test2() {
Map map=new HashMap();//map也是堆里的地址值
//put(key,value);键值对方式添加元素到集合
map.put(123, 123);
map.put(null,null);
map.put("abc", "abc");
map.put("1001","123");
map.remove("abc");//遍历
//Set keySet();
System.out.println("=================================");
Set set=map.keySet();
for(Object s:set) {//无序性,set
System.out.println(s);
}
System.out.println("==================================");
Collection values=map.values();//map的值是collection类型,collection的无序是由于key导致的
for(Object v:values) {
System.out.println(v);
}
System.out.println("Key==================================");
//遍历map的例方法
Set key=map.keySet();
for(Object o:key) {
System.out.println(o+"--"+map.get(o));
}
System.out.println("entrySet==================================");
//使用entrySet方法
Set set1=map.entrySet();//因为key与value组合后即为enteySet
for(Object o:set1)
System.out.println(o);
for(Object o:set1) {
Entry entry=(Entry) o;
System.out.println(entry.getKey()+"--"+entry.getValue());
}
}
public static void test() {
Map map=new HashMap();//map也是堆里的地址值
//put(key,value);键值对方式添加元素到集合
map.put(123, 123);
map.put(null,null);
map.put("abc", "abc");
map.put(123, "中国加油");
System.out.println(map);//由于key不可重复,故其会覆盖,map也重写了toString方法,否则输出地址值
/*
* HashMap();
* key用set存储,不可重复,value用collection存储,可以重复
* 一个key -value 等于一个Entery ,不可重复 如果key出错重复,把上一个覆盖
* 判断标准是调用该对象的equals方法,此时,若toString被重写,则会比较值,否则比较地址
*/
map.put(new String("aaa"),"aaa");
map.put(new String("aaa"),"bbb");
System.out.println(map);//使用equals方法判断 String类重写了String方法,故比较的是值,而==是比较地址
map.put(new StudentTest("鹏翔"), "商城");
map.put(new StudentTest("鹏翔"), "科技");//由于该Student未写toString方法,故判断地址,
System.out.println(map);
System.out.println(map.hashCode());
}
}
上一篇: Redis中的GETBIT和SETBIT用法与使用(转载)
下一篇: 理解 Redis