本人初学JAVA 有个小问题
有个LIST对象,有a,b,c,d,e五个元素都为string类型
有值为:{aa,11,name1,bb,cc},
{aa,11,name2,bb,cc},
{aa,12,name1,bb,cc},
{aa,12,name2,bb,cc},
如果要把它转变为另个LIST.也有5个元素,其中c元素为一个LIST对象,
转变方法为a,b元素相同条件下将c元素变为LIST对象。
即:{aa,11,{name2},bb,cc},
{aa,12,{name1,name2},bb,cc},
请问该如何实现,哪位牛人给个实现方法,谢谢
[b]问题补充:[/b]
lovewhzlq老兄:你写得判断的方法我试了可以了,但是可以把给新的LIST赋值的代码写下吗?谢谢~~~~~~~~~~ :x
[b]问题补充:[/b]
最关键就是把要变成LIST的那个元素的赋值写法
[code="java"]
import java.util.*;
public class ListTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<List<String>> list = new ArrayList<List<String>>();
List<String> l1 = new ArrayList<String>();
l1.add("aa");
l1.add("11");
l1.add("name1");
l1.add("bb");
l1.add("cc");
List<String> l2 = new ArrayList<String>();
l2.add("aa");
l2.add("11");
l2.add("name2");
l2.add("bb");
l2.add("cc");
List<String> l3 = new ArrayList<String>();
l3.add("aa");
l3.add("12");
l3.add("name1");
l3.add("bb");
l3.add("cc");
List<String> l4 = new ArrayList<String>();
l4.add("aa");
l4.add("12");
l4.add("name2");
l4.add("bb");
l4.add("cc");
list.add(l1);
list.add(l2);
list.add(l3);
list.add(l4);
List<List> result = new ArrayList<List>();
List<Integer> hasVisited = new ArrayList<Integer>();
for (int i = 0; i < list.size(); i++) {
if(hasVisited.contains(i))
{
continue;
}
List tempi = list.get(i);
List item = new ArrayList();
List c = new ArrayList();
item.add(tempi.get(0));
item.add(tempi.get(1));
c.add(tempi.get(2));
for (int j = i + 1; j < list.size(); j++) {
List tempj = list.get(j);
if (tempi.get(0).equals(tempj.get(0))
&& tempi.get(1).equals(tempj.get(1))) {
c.add(tempj.get(2));
hasVisited.add(j);
}
}
item.add(c);
item.add(tempi.get(3));
item.add(tempi.get(4));
result.add(item);
}
System.out.println(result);
System.out.println(hasVisited);
}
}
[code]
List> list
= /*{aa,11,name1,bb,cc},
{aa,11,name2,bb,cc},
{aa,12,name1,bb,cc},
{aa,12,name2,bb,cc},
*/
List result = new ArrayList();
for(int i=0;i<list.size();i++)
{
List tempi = list.get(i);
for(int j=i+1;j<list.size()ji++)
{
List tempj = list.get(i);
if(tempi.get(0).equals(tempj.get(0)) && tempi.get(1).equals(tempj.get(1)))
//.......
}