java集合常见的处理
2016-01-21 15:57
513 查看
不积硅步无以至千里 不积小溪无以成江海
1.遍历ArrayList方法
2.对map的遍历
3.list,array,set,map相互转化
将map的values转成成list
List–>数组
数组–>List
Set–>List
List–>Set
数组–>Set
Set–>数组
1.遍历ArrayList方法
/** *这种方式在循环执行过程中会进行数据锁定,性能稍差.同时,如果想在遍历过程 *中去掉某个元素,只能调用迭代器it的remove方法,不能使用集合list的 *remove方法,否则一定出现并发访问的错误. */ for(Iterator<String> it = list.iterator();it.hasNext(); ){ } /** *底层还是调用第一种,只是简写了而已,因此比Iterator 慢,这种循环方式还其 *他限制, 不建议使用它,但是代码简洁。数据量不大可采用 */ for(String data : list){ } /** *内部不锁定,效率最高,但是当写多线程时要考虑并发操作的问题。以上方法调时 *必须确保list会初始化,不然会爆空指针异常 **/ for(int i=0; i<list.size(); i++) { ... }
2.对map的遍历
//JDK1.4中, 键值对遍历 Iterator it = map .entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); System.out.println("key=" + key + " value=" + value); } //JDK1.5中,应用新特性For-Each循环 ----键值对遍历 for (Map.Entry<String, Integer> entry : map .entrySet()) { String key = entry.getKey().toString(); String value = entry.getValue().toString(); System.out.println("key=" + key + " value=" + value); } // HashMap keySet() 遍历 ----遍历key for (Iterator i = map .keySet().iterator(); i.hasNext();) { Object obj = i.next(); System.out.println("key=" + obj + " value=" + map .get(obj)); } // 遍历方法四 map keySet()遍历 ----遍历key ,代码最简洁 for (Object o : map .keySet()) { System.out.println("key=" + o + " value=" + map .get(o)); }
3.list,array,set,map相互转化
将map的values转成成list
//复杂实现 public static <T> List<T> mapTransitionListList(Map<T,T> map){ List<T> list=new ArrayList<>(); Iterator iter = map.entrySet().iterator(); while(iter.hasNext()){ Entry entry = (Entry) iter.next(); list.add((T) entry.getValue()); } return list; } //简单实现 public static <T> List<T> mapTransitionListList2(Map<T,T> map){ List<T> list= new ArrayList<T>(map.values()); return list; }
List–>数组
List<String> list = new Arr 9ad9 ayList<String>(); //第一种,将转化后的数组放入已经创建好的对象中 String[] strings1 = new String[list.size()]; list.toArray(strings1); //第二种,将转化后的数组赋给新对象 String[] strings2 = list.toArray(new String[0]);
数组–>List
String[] ss = {"JJ","KK"}; List<String> list1 = Arrays.asList(ss); List<String> list2 = Arrays.asList("AAA","BBB"); //通过查看API,Arrays.asList(ss)表示返回一个新的的ArrayList @SafeVarargs public static <T> List<T> asList(T... a) { return new ArrayList<>(a); }
Set–>List
List<String> l = new ArrayList<String>(new HashSet<String>());
List–>Set
Set<String> set = new HashSet<String>(new ArrayList<String>());
数组–>Set
String[] strs = {"a","b"}; Set<String> set = new HashSet<String>(Arrays.asList(strs));
Set–>数组
Set<String> set = new HashSet<String>(Arrays.asList("PP","OO")); String[] strSet = new String[set3.size()]; set3.toArray(strSet);
相关文章推荐
- JavaWeb基础
- java集合:set 和 map
- JAVA对象JSON数据互相转换的四种常见情况
- Struts2国际化文件乱码解决
- JavaSE-反射机制
- java对象和json数据转换实现方式3-使用jackson实现
- Java继承和多态===Java多态对象的类型转换
- 解决MyEclipse吃内存以及卡死的方法
- 全面分析 Spring 的编程式事务管理及声明式事务管理
- java交换两个变量的值
- Google Java编程风格指南
- java中代码的注释和快捷键
- 跟我学SpringMVC目录汇总贴、PDF下载、源码下载
- java多线程中的synchronized和wait/notify用法总结
- Java继承和多态===Java instanceof 运算符
- 【慕课笔记】第五章 阶段练习 第3节 使用Eclipse调试程序
- java对象---序列化与反序列化
- java 执行bat批处理文件 并关闭cmd窗口
- Java继承和多态===Java多态和动态绑定
- 两张图解读Java异常与断言