1.最近任务需要将数据进行不断比较并输出数据,数据是多条,利用HashMap和List结合实现数据缓存。
代码如下:
public class MapTest {
private static HashMap<String,List<String>> mapSave = new HashMap<>();
public static void main(String args[]) {
mapSave.clear();
List<String> list = new ArrayList<>(); //不要将这句写在外面,不然会重复写入数据。
list.add("aaa");
list.add("bbb");
list.add("ccc");
list.add(3+"");
list.add(4+"");
list.add(5+"");
String key = Integer.toString(mapSave.size()); //当需要存入多组数据,且组数不知道的时候,可以直接用mapSave.size()替代。
mapSave.putIfAbsent(key,list); //将数据缓存进去,putIfAbsent是会对key进行排序。无排序可以使用mapSave.put(key,list);
if(mapSave!=null && mapSave.size()>0) {
Iterator<Map.Entry<String, List<String>>> it = mapSave.entrySet().iterator(); //利用迭代器循环输出
List<String> field = new ArrayList<>();
List<String> value = new ArrayList<>();
while (it.hasNext()) {
Map.Entry<String,List<String>> entry=it.next();
System.out.println("key="+entry.getKey()+","+"value="+entry.getValue());
field.add(entry.getKey().toString());
value.add(entry.getValue().toString());
}
System.out.println("keyList="+field+","+"valueList="+value); //输出为List类型
}
}
}
结果:
key=0,value=[aaa, bbb, ccc, 3, 4, 5]
keyList=[0],valueList=[[aaa, bbb, ccc, 3, 4, 5]]
2.如果是当个数据缓存,实现起来就简单多了。
代码如下:
public class MapTest {
private static HashMap<String,Integer> map = new HashMap<>();
public static void main(String args[]) {
int a;
map.clear(); //清空数据
if(map.isEmpty()){ //判断map是否有数据
a = 888;
map.put("first",a);
map.get("first");
}
System.out.println(map.get("first"));
}
结果:888