实在想不出来了...
求给位大神帮忙解答...
//假设 Pc 是对象, 对象有属性 ID,NAME
//假设 getPcList()这个方法获取了 List <Pc> 的集合
List <Pc> list = getPcList();
// 重点: 循环 list 得到数据 一个()代表一条数据 (12138,a),(12139,b),(12140,c),(12138,d),(12139,e),(12138,f),(12138,g)
// 重点: 请大神们把数据封装成这样 12138(a,d,f,g),12139(b,e),12140(c)
// 最好写成方法 ,注意数据最好拼成的格式...
求各位大神帮忙~~~
很急啊...
------解决方案--------------------
创建一个Map<Integer,List<String>>
List <Pc> list = getPcList();
Map<Integer,List<String>> map = new HashMap<Integer,List<String>>();
for(Pc pc:list){//循环读取list内数据
if(null == pc) continue;
Integer id = pc.getID();
String name = pc.getName();
List<String> nameList = map.get(id);//获取id对应的name列表
if(null == nameList){//没有name列表则创建,放入map
nameList = new ArrayList<Integer,String>();
map.put(id,nameList);
}
nameList.add(name);//将name加入name列表
}
}
------解决方案--------------------
List <Pc> list = getPcList();
Map<Integer,List<String> hashMap = new HashMap<Integer,List<String>>();
for(Pc p:list){
//判断p是否为空
if(p == null){
continue;
}
Integer id = pc.getID();
String name = pc.getName();
List<String> values = new List<String>();
//判断map中是否存在该key
if(hashMap.containsKey(id)){
values = hashMap.get(id);
}
//不管是否存在,都需要将name加到list中。
//如果存在,则会替换掉存在的,如果不存在则会添加一个新的
values.add(p.getName());
hashMap.put(id,values);
}
------解决方案--------------------
List<Pc> list = getPcList();
for(int i=list.size()-1;i>=1;i--){
for(int j=i-1;j>=0;j--){
if(list.get(i).getId().equals(list.get(j).getId())){
//ID相同,移除改对象。跳出循环。
list.remove(j);
break;
}
}
}
应该可以用。
------解决方案--------------------
不好意思,没有仔细看你的功能,二楼的应该可以。
------解决方案--------------------
map 是最常见的解决这样的问题。