基于Java使用HashMap<String,List<String>>实现数据的缓存
2018-01-11 20:58
976 查看
1.最近任务需要将数据进行不断比较并输出数据,数据是多条,利用HashMap和List结合实现数据缓存。
代码如下:
public class MapTest {
结果:
key=0,value=[aaa, bbb, ccc, 3, 4, 5]
keyList=[0],valueList=[[aaa, bbb, ccc, 3, 4, 5]]
2.如果是单个数据进行缓存写入和取出,实现起来就简单多了。
代码如下:
结果:888
总结:在开发过程中,要注意理解实现内容,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使用HashMap实现数据的缓存
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- Map<String,Map<String,List<String>>>结构取数据这个方法比Iterator和foreach效率稍高。
- 基于Java LinkedList,实现Android大数据缓存策略
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- 关于 Dictionary<string,string>,和List<T>在View的使用
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- <java><JTable>使用AbstractTableModel实现更新、删除、插入数据
- java List<String>转String[]
- ibatis 返回list<String[]>----resultClass="hashMap" 可以实现
- Java实现List<Map<String, Object>> 转Map<Object, Object>
- 利用java反射机制实现List<Map<String, Object>>转化为List<JavaBean>
- java—将查询的结果封装成List<Map>与用回调函数实现数据的动态封装(44)
- Java实现从IP和端口列表List<String>获取分离的IP和端口值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值
- 利用Jquery让返回的各类数据(string、集合(List<>)、类)以Json数据格式返回,为什么要用到result.d (JQuery ajax 返回数据 使用 .d 的问题)
- List<Map<String,Object>>使用Java代码遍历以获取String,Object的值