- 浏览: 1381041 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (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 2867错误信息: 原代码: if (null != dto ... -
java.lang.NoSuchMethodError
2015-10-30 19:50 1265在执行命令 java -Djava.ext.dirs=./de ... -
OutOfMemoryError
2015-01-07 10:49 679错误信息: 执行命令(修改前): java -Djava. ... -
自定义ClassLoader
2014-12-14 17:13 888一、自定义类加载器代码: package foo; im ... -
URL传递中文参数乱码问题
2014-03-14 12:55 1156项目特殊要求,form表单使用get方式提交,由此出现了中文乱 ... -
Java使用正则进行奇偶替换
2013-12-30 11:20 1595/** * 将位于偶数位的数字1替换为2 */ ... -
Java调用ping命令
2013-11-26 10:26 3717package cn.com.songjy; impor ... -
Linux开机启动Java程序
2013-11-25 15:26 3592一、编写启动Java程序shell脚本(smssend.sh) ... -
单例模式
2013-11-05 09:58 793Java之美[从菜鸟到高手演变]之设计模式 Java开发中 ... -
判定2个对象相等之重写equals方法
2013-10-18 11:03 1100package cn.com.songjy.test; ... -
SAX解析XML文件示例
2013-09-13 17:32 1047package cn.com.songjy.test.xml; ... -
二分查找算法(Binary Search)
2013-09-13 17:01 2467项目中遇到需要从数组中查找数据,但是算法很多,于是根据项目需求 ... -
Iterate over rows and cells(EXCEL文件的读取)
2013-09-13 14:13 4101package cn.com.songjy.test.exce ... -
jdk1.5的Exchanger同步工具
2013-08-27 14:04 703package cn.com.songjy.test.sock ... -
jdk1.5的CountDownLatch同步工具
2013-08-27 13:37 816package cn.com.songjy.test.sock ... -
jdk1.5的Semaphere同步工具
2013-08-23 14:20 1094package cn.com.songjy.test.so ... -
jdk1.5条件阻塞Condition的应用
2013-08-23 09:42 1367package cn.com.songjy.test.sock ... -
jdk1.5读写锁技术的妙用
2013-08-19 22:00 1396/** * ReadWriteLockTest.java ... -
jdk1.5的线程锁技术
2013-08-19 20:25 967/** * LockTest.java * cn.co ... -
Callable与Future的应用
2013-08-19 20:03 1073/** * CallableAndFuture.java ...
相关推荐
在Java编程中,将二维数组转换为JSON格式的数据是常见的数据处理需求,特别是在处理Web服务或数据交换时。本文将详细讲解如何使用Java实现这一功能,以及涉及的相关操作技巧。 首先,我们需要理解二维数组和JSON的...
// 转换回二维数组 int[][] restoredMatrix = new int[matrixList.size()][]; for (int i = 0; i (); i++) { restoredMatrix[i] = new int[matrixList.get(i).size()]; for (int j = 0; j (i).size(); j++) { ...
数组可以是一维、二维或多维的,用于存储同类型的元素。例如,你可以创建一个整型数组来存储一系列的整数: ```csharp int[] numbers = new int[5]; // 创建一个包含5个整数的数组 numbers[0] = 1; numbers[1] = 2;...
- Java支持二维数组,可以看作是一组一维数组的集合。例如,`int[][] matrix = new int[3][4]`创建了一个3行4列的矩阵。 4. **数组排序**: - 可以使用Java内置的`Arrays.sort()`方法对数组进行升序或降序排序。...
Java中声明二维数组的格式为:`int[][] array = new int[行数][列数];` 在本文中,我们使用二维数组来存储数独问题的矩阵数据。 二、Java中的数组遍历 数组遍历是指对数组中的每个元素进行遍历和访问的过程。在...
为了实现这些功能,开发者可能会使用Java的二维数组或者更高级的数据结构,如ArrayList的嵌套使用,来存储矩阵元素。在操作过程中,注意处理边界条件和异常,以确保程序的健壮性。 总的来说,理解和掌握上三角、下...
因为Java中不能直接将`ArrayList`转换为多维数组,我们需要遍历`ArrayList`,将每个子`ArrayList`转换为整型数组并添加到结果数组中。 最后,`splitAry`方法返回这个`Object`数组,其中每个元素都是一个整型数组,...
- `arrayToMatrix(Object[] objects, int widthRange)` 方法将一维数组转换为二维数组(矩阵),宽度为`widthRange`,根据输入数组的长度自动调整高度。这种方法在处理表格数据或图像数据时非常有用。 - `...
访问二维数组元素:`multiArray[0][1]`表示第一行第二列的元素。 五、遍历数组 1. for循环:`for (int i = 0; i ; i++) { System.out.println(myArray[i]); }` 2.增强for循环(foreach):`for (int element : ...
本章主要讨论了C# 4.0中的数组和集合的使用,包括一维数组、二维数组和多维数组,以及动态数组、队列、堆栈和哈希表等集合应用。 数组是C#中基本的数据结构之一,它是一系列相同类型的数据的集合,可以通过索引来...
数组可以是一维的,也可以是多维的,如二维数组、三维数组等。数组的大小在声明时通常是固定的,但可以通过动态数组来改变大小。 二、数组的声明与初始化 在VB中,声明数组可以使用Dim语句,例如: ```vb Dim arr(0...
Java还支持多维数组,如二维数组,可以理解为数组的数组: ```java int[][] matrix = new int[3][4]; ``` 6. **方法引用** Java 8引入了方法引用的概念,我们可以直接用ArrayUtil的函数名来调用其方法,如`...
例如,初始化一个2x2的二维数组: ```vb Dim multiArray(1 To 2, 1 To 2) As Integer multiArray(1, 1) = 1 multiArray(1, 2) = 2 multiArray(2, 1) = 3 multiArray(2, 2) = 4 ``` ### 实例应用 在实际编程中,...
访问二维数组元素的方式为: ```java int element = matrix[行索引][列索引]; ``` 六、数组作为方法参数 数组可以作为方法的参数传递,这允许在方法内部操作数组。例如: ```java public void printArray(int[] arr...
2. **多维数组**:Java也支持多维数组,如二维数组,它可以看作是数组的数组,常用于表示矩阵或表格数据。`int[][] matrix = new int[3][4];` 这将创建一个3行4列的二维数组。 3. **遍历数组**:通过for循环可以...
数组分为一维数组、二维数组或多维数组。在这里,我们将主要讨论一维数组的遍历。 1. **声明和初始化数组** 在Java中,我们可以声明并初始化一个数组如下: ```java // 声明一个整型数组,长度为5 int[] ...
例如,将二维数组转换为`List<List<Integer>>`: ```java int[][] multiDimArray = {{1, 2}, {3, 4}, {5, 6}}; List<List<Integer>> multiDimList = new ArrayList(); for (int[] subArray : multiDimArray) { ...
- **BasicRowProcessor**:预设的ResultSetHandler实现,可以将结果集转换为基本的Java对象,如ArrayList或HashMap。 4. **连接池集成**: DBUtils支持与多种连接池(如C3P0、DBCP、HikariCP等)配合使用,可以...
对于多维数组,Java支持二维和更高维度的数组,最常用的是二维数组,可以看作是表格形式的数据结构。多维数组在内存中的存储方式实际上是数组的数组,这意味着可以为每一维数组分配不同的长度。 字符串是Java中非常...
- 初始化二维数组`map`,根据字符将地图转换为0和1。 - 使用DFS遍历地图,当找到一个油藏单元时,从当前位置开始进行DFS,标记所有相邻的油藏单元。 - 维护一个计数器`num`,记录不同油藏的数量。 - 在遍历完整...