- 浏览: 1367658 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (287)
- oracle (30)
- Java (73)
- MySQL (16)
- Myeclipse/eclipse (12)
- javascript (15)
- JSP/Servlet (7)
- maven (14)
- AJAX (2)
- JQuery (9)
- tomcat (8)
- spring (21)
- Linux (28)
- PHP (9)
- UI (1)
- 编程错误及处理 (38)
- 多线程 (18)
- hibernate (10)
- Web Service (3)
- struts2 (6)
- log4j (3)
- SVN (4)
- DWR (1)
- lucene (1)
- 正则表达式 (4)
- jstl (2)
- SSL (3)
- POI (1)
- 网络编程 (1)
- 算法 (2)
- xml (4)
- 加密解密 (1)
- IO (7)
- jetty (2)
- 存储过程 (1)
- SQL Server (1)
- MongoDB (1)
- mybatis (1)
- ETL (1)
- Zookeeper (1)
- Hadoop (5)
- Redis (1)
- spring cloud (1)
最新评论
-
ron.luo:
牛逼,正解!
maven设定项目编码 -
lichaoqun:
java.sql.SQLException: Can't call commit when autocommit=true -
Xujian0000abcd:
Thanks...
Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the clas -
renyuan2ni:
[i][b][u]引用[list]
[*][img][flas ...
Manual close is not allowed over a Spring managed SqlSession -
851228082:
宋建勇 写道851228082 写道<!-- 文件拷贝时 ...
maven设定项目编码
今天突然想到一个问题,即ArrayList的分组问题,person对象保存在ArrayList中,如何按部门再进行分组,每个部门的person对象存放到各自的一个ArrayList中,再将产生的若干个List<Person>保存到List<List<Person>>,最后将生成的List<List<Person>>转换为Person[][],我的代码如下:
POJO类
Map转为二维数组
package test; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; public class ListTest { public static void main(String[] args) { List<Person> persons = ListTest.getPersons(); String[] set = ListTest.getCompany(persons); List<List<Person>> list = ListTest.getLists(set, persons); Person[][] ps = ListTest.getArrayPerson2(list); for (Person[] persons2 : ps) { for (Person person : persons2) { System.out.println(person.getId()+","+person.getName()); } } } /*将List<List<Person>>转换为二维数组Person[][]*/ public static Person[][] getArrayPerson2(List<List<Person>> list){ Person[][] ps = new Person[list.size()][]; for (int i = 0; i < list.size(); i++) { ps[i] = list.get(i).toArray(new Person[list.get(i).size()]); } return ps; } /*将每个部门的对象保存到各自的ArrayList<Person>中,再将所有的ArrayList<Person>保存到List<List<Person>>*/ public static List<List<Person>> getLists(String[] set, List<Person> persons){ List<List<Person>> list = new ArrayList<List<Person>>(); for(int j=0;j<set.length;j++){ List<Person> pp = new ArrayList<Person>(); for(int x=0;x<persons.size();x++){ Person p = persons.get(x); if(p.getComparny().equals(set[j])){ pp.add(p); } } list.add(pp); } return list; } /*获取部门,将其存在一个String[]中*/ public static String[] getCompany(List<Person> list){ Set<String> sets = new HashSet<String>(); for (Person person : list) { sets.add(person.getComparny()); } String[] set = new String[sets.size()]; Iterator<String> it = sets.iterator(); int i = 0; while(it.hasNext()){ set[i]=it.next(); i++; } return set; } /*数据模拟*/ public static List<Person> getPersons(){ List<Person> persons = new ArrayList<Person>(); Person p1 = new Person(); Person p2 = new Person(); p1.setId("10010"); p2.setId("10011"); p1.setName("小李"); p2.setName("小杨"); p1.setComparny("县防办"); p2.setComparny("县防汛指挥部"); p1.setPosition("副厅长"); p2.setPosition("厅长"); p1.setAddress("镇海1"); p2.setAddress("镇海1"); p1.setMobile("13734334323"); p2.setMobile("13134334323"); p1.setTelephone("8219324"); p2.setTelephone("8219324"); Person p3 = new Person(); Person p4 = new Person(); p3.setId("10012"); p4.setId("10011"); p3.setName("小催"); p4.setName("小橘"); p3.setComparny("县防办"); p4.setComparny("乡防办"); p3.setPosition("副厅长"); p4.setPosition("厅长"); p3.setAddress("镇海1"); p4.setAddress("镇海2"); p3.setMobile("13834334323"); p4.setMobile("13534334323"); p3.setTelephone("8219324"); p4.setTelephone("8219324"); Person p5 = new Person(); Person p6 = new Person(); p5.setId("10012"); p6.setId("10011"); p5.setName("小刘"); p6.setName("小姜"); p5.setComparny("县防汛指挥部"); p6.setComparny("乡防办"); p5.setPosition("副厅长"); p6.setPosition("厅长"); p5.setAddress("镇海1"); p6.setAddress("镇海2"); p5.setMobile("13834334323"); p6.setMobile("13534334323"); p5.setTelephone("8219324"); p6.setTelephone("8219324"); persons.add(p1); persons.add(p2); persons.add(p3); persons.add(p4); persons.add(p5); persons.add(p6); return persons; } }
POJO类
package test; public class Person { private String id; private String name; private String comparny; private String position; private String address; private String mobile; private String telephone; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getComparny() { return comparny; } public void setComparny(String comparny) { this.comparny = comparny; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getTelephone() { return telephone; } public void setTelephone(String telephone) { this.telephone = telephone; } }
Map转为二维数组
private String[][] TwoDimensionalArray(Map<String, String> map) { if (null == map || map.size() == 0) return null; String[][] twoDarray = new String[map.size()][2]; String[] keys = map.keySet().toArray(new String[map.size()]); String[] values = map.values().toArray(new String[map.size()]); for (int row = 0; row < twoDarray.length; row++) { twoDarray[row][0] = keys[row]; twoDarray[row][1] = values[row]; } return twoDarray; }
评论
2 楼
宋建勇
2011-11-22
这个不行,List<Person>只是单个列表,只能转换成一维数组,因为它没有包含双列表,可参考一下方法,该方法和上面介绍的getArrayPerson2是一样的道理。
public static void listTest(){
ArrayList<Integer> l1 = new ArrayList<Integer>();
l1.add(1);
l1.add(2);
l1.add(3);
ArrayList<Integer> l2 = new ArrayList<Integer>();
l2.add(4);
l2.add(5);
l2.add(6);
ArrayList<ArrayList<Integer>> l = new ArrayList<ArrayList<Integer>>();
l.add(l1);
l.add(l2);
for(int i=0;i<l.size();i++){
System.out.println(l.toArray()[i]);
}
}
该方法的输出运行结果是:
[1, 2, 3]
[4, 5, 6]
public static void listTest(){
ArrayList<Integer> l1 = new ArrayList<Integer>();
l1.add(1);
l1.add(2);
l1.add(3);
ArrayList<Integer> l2 = new ArrayList<Integer>();
l2.add(4);
l2.add(5);
l2.add(6);
ArrayList<ArrayList<Integer>> l = new ArrayList<ArrayList<Integer>>();
l.add(l1);
l.add(l2);
for(int i=0;i<l.size();i++){
System.out.println(l.toArray()[i]);
}
}
该方法的输出运行结果是:
[1, 2, 3]
[4, 5, 6]
1 楼
jsjtzq
2011-10-26
请问能不能将List<Person>对象转换成二维数组呢?该怎么转?
发表评论
-
java.io.NotSerializableException: java.util.ArrayList$SubList
2016-03-15 11:36 2800错误信息: 原代码: if (null != dto ... -
java.lang.NoSuchMethodError
2015-10-30 19:50 1097在执行命令 java -Djava.ext.dirs=./de ... -
OutOfMemoryError
2015-01-07 10:49 647错误信息: 执行命令(修改前): java -Djava. ... -
自定义ClassLoader
2014-12-14 17:13 864一、自定义类加载器代码: package foo; im ... -
URL传递中文参数乱码问题
2014-03-14 12:55 1116项目特殊要求,form表单使用get方式提交,由此出现了中文乱 ... -
Java使用正则进行奇偶替换
2013-12-30 11:20 1563/** * 将位于偶数位的数字1替换为2 */ ... -
Java调用ping命令
2013-11-26 10:26 3641package cn.com.songjy; impor ... -
Linux开机启动Java程序
2013-11-25 15:26 3539一、编写启动Java程序shell脚本(smssend.sh) ... -
单例模式
2013-11-05 09:58 761Java之美[从菜鸟到高手演变]之设计模式 Java开发中 ... -
判定2个对象相等之重写equals方法
2013-10-18 11:03 1061package cn.com.songjy.test; ... -
SAX解析XML文件示例
2013-09-13 17:32 1015package cn.com.songjy.test.xml; ... -
二分查找算法(Binary Search)
2013-09-13 17:01 2378项目中遇到需要从数组中查找数据,但是算法很多,于是根据项目需求 ... -
Iterate over rows and cells(EXCEL文件的读取)
2013-09-13 14:13 4064package cn.com.songjy.test.exce ... -
jdk1.5的Exchanger同步工具
2013-08-27 14:04 663package cn.com.songjy.test.sock ... -
jdk1.5的CountDownLatch同步工具
2013-08-27 13:37 767package cn.com.songjy.test.sock ... -
jdk1.5的Semaphere同步工具
2013-08-23 14:20 1064package cn.com.songjy.test.so ... -
jdk1.5条件阻塞Condition的应用
2013-08-23 09:42 1333package cn.com.songjy.test.sock ... -
jdk1.5读写锁技术的妙用
2013-08-19 22:00 1366/** * ReadWriteLockTest.java ... -
jdk1.5的线程锁技术
2013-08-19 20:25 941/** * LockTest.java * cn.co ... -
Callable与Future的应用
2013-08-19 20:03 1037/** * CallableAndFuture.java ...
相关推荐
6.2.2 二维与多维数组 99 6.2.3 可变长度的参数列表 101 6.3 字符串类 102 6.3.1 Java字符串是一种引用数据类型 103 6.3.2 字符串处理 103 6.3.3 StringBuffer类 107 6.4 字符串与数值的转换 109 ...
4.3.3 二维数组111 4.4 经典算法113 4.4.1 算法-冒泡排序113 4.4.2 插入排序115 4.5 增强for循环116 4.6 本章练习117 第5章 5.1 面向过程的设计思想120 5.2 面向对象的设计思想120 5.3 抽象121 5.3.1 对象的理解121 ...
5.1.6二维数组的使用207 5.1.7for~each循环208 5.1.8应用程序示例1——数组排序209 5.1.9应用程序示例2——杨辉三角212 5.2字符串213 5.2.1String对象的声明213 5.2.2String对象的创建214 5.2.3String对象的...
// 创建一个二维数组保存处理后的数据,其中每个一维数组中包含一个记录,每个二维数组中包含每条数据的信息 // allMsg[i][0]:标题; allMsg[i][1]:时间 allMsg[2]:处理状态 for (int i = 0; i ; i++) {// ...
Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
Google Android SDK开发范例大全(完整版)共4个...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
assignTwoDime.java 为二维数组赋值 getMaxElem.java 获取数组中的最大元素 incCapicity.java 演示StingBuffer的容量增长 SortDemo.java 排序示例 travelTwoDime.java 遍历二维数组 traversing.java 遍历一维...
java为数据结构中的列表定义了一个接口类java.util.list同时提供了3个实现类,分别是ArrayList、Vector、LinkedList使用; 生成不重复的随机数序列;列表、集合与数组的互相转换;java为数据结构中的映射定义一个接口...
目录 第1章 了解.深入.动手做. ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
——HttpURLConnection与Service侦测服务 第9章 Google服务与Android混搭 9.1 Google帐号验证Token——AuthSub 9.2 Google搜索——AutoCompleteTextView与GoogleSearchAPI 9.3 前端产生QRCode二维条形码——...
Google Android SDK开发范例大全(完整版) ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
好东西与大家同享! Google Android SDK开发范例...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
Google Android SDK开发范例大全 ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
Google Android SDK开发范例大全 ...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
作者简介 余志龙,来自于手机制造业、电视媒体业...10.5 AndroidQRCode二维条形码扫描仪——BitmapFactory.decodeByteArray 10.6 上班族今天中午要吃什么——热量骰子地图 10.7 掷杯筊——把手机放在空中甩事件处理...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...