开发中,Json是很常用的数据格式,Android 自己提供了JSONObject和JSONArray两种数据类型供我们解析使用;相信大家对二者使用都很熟悉的。但将Json串解析为所需类型时候过于麻烦,针对每个解析需要写很多代码。。而且如果我们想将本地数据变为Json串,只能一个个拼,很容易出错。。
为此goole提供了一个新的解析方式,Gson解析,对用也有JsonObject和JsonArray和安卓自带的很相似只有字母大小写区别,但这个使用特别方便,Json串转为需要数据格式或者反过来都很方便
使用场景:当需要本地存储数据且适宜采用长字符串可考虑用json船,向后台传复杂参数用json.. 等等地方都可优先考虑 Gson解析。
具体使用可以查资料
二:java的迭代器
迭代器的简单实用场景,事例代码
- List list=new ArrayList();
- Map map=new HashMap();
- for(int i=0;i<10;i++){
- list.add(new String("list"+i) );
- map.put(i, new String("map"+i));
- }
- Iterator iterList= list.iterator();//List接口实现了Iterable接口
- while(iterList.hasNext()){
- String strList=(String)iterList.next();
- System.out.println(strList.toString());
- iterList.remove(); 删除了List中对应的该元素
- }
- Iterator iterMap=map.entrySet().iterator();
- while(iterMap.hasNext()){
- Map.Entry strMap=(Map.Entry)iterMap.next();
- System.out.println(strMap.getValue());
- }
有人不禁要问这些好像for循环都能实现的,那为什么用这个呢。。下面看看连个对比
如果在for循环的过程中调用集合的remove()方法,就会导致循环出错,因为循环过程中list.size()的大小变化了,就导致了错误。 所以,如果想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove()方法,因为它的remove()方法不仅会删除元素,还会维护一个标志,用来记录目前是不是可删除状态,例如,你不能连续两次调用它的remove()方法,调用之前至少有一次next()方法的调用