您的位置:首页 > 编程语言 > Java开发

基于Java使用HashMap<String,List<String>>实现数据的缓存

2018-01-11 20:58 976 查看
1.最近任务需要将数据进行不断比较并输出数据,数据是多条,利用HashMap和List结合实现数据缓存。

代码如下:

public class MapTest {

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

总结:在开发过程中,要注意理解实现内容,List的位置要放对,不然会导致数据重复写入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Java Map数据缓存 List
相关文章推荐