java取List中重复的数据!

2024-12-18 16:39:56
推荐回答(4个)
回答1:

package acc.testJSON;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;

public class AA {



public static void main(String[] args) {
List> list=new ArrayList>();

Map map2=new HashMap();
map2.put(1, "美元");
map2.put(2, "日元");

map2.put(3, "欧元");
map2.put(4, "日元");
map2.put(5, "人民币");
map2.put(10, "欧元");

list.add(map2);



System.out.println("--------之前---------------");
for(int i=0;i Map tempMap=list.get(i);
 for(Entry e:tempMap.entrySet()){
 System.out.println("K: "+e.getKey()+" v: "+e.getValue());
 }}

 System.out.println("---------------------开始处理--------------------------");
 List> newList=new ArrayList>();
      AA aa=new AA();
      newList=aa.executMoedth(list);//如果有相同的
    

System.out.println("--------之后---------------");

for(int i=0;i Map tempMap=newList.get(i);
 for(Entry e:tempMap.entrySet()){
 System.out.println(e.getValue()+":"+e.getKey());
 }}


}


public List> executMoedth(List> list){

 System.out.println("---------------------处理中--------------------------");
 List> newList=new ArrayList>();
Map newMap=new HashMap();  
 
for(int i=0;i
Map tempMap=list.get(i);//第i个list中的Map

 for(Entry e1:tempMap.entrySet()){//map遍历 
 int tempi=0;
 for(Entry e2:tempMap.entrySet()){//map遍历 

 if(e1.getValue().equals(e2.getValue())){//如果相等
 
 
 if(!e1.equals(e2))
/* tempi++;
 if(tempi>=1)*/
 {
// newMap.remove(e1.getKey());//移除第一个添加的
 int newValus=e1.getKey()+e2.getKey();//得到总钱数
 String newKey=e1.getValue();

     newMap.remove(e1.getValue());//干掉
 newMap.remove(e2.getValue());//干掉
             System.out.println("找到一个 已处理:"+newKey + newValus);
             
             newMap.put(newKey,newValus);//新集合
 
 }
 //如果新集合里没有的
 if(!newMap.containsKey(e1.getValue()))
   newMap.put(e1.getValue(),e1.getKey());//新集合

 
 }
 
 }

}
 
newList.add(newMap);//新集合 
 
}
 return newList;

}

}

回答2:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@SuppressWarnings("unchecked")
public class TestList {//koukouGroup two one seven seven seven one two有不明白的进来问
public static List turn2Union(List inList){
List outList = new ArrayList();//用于返回list
Map danMaps = new HashMap();//用于记录单位和金额如果金额不是整数就把Integer改成double啥的
List danKeys = new ArrayList();//用于记录单位


for (int i = 0; i < inList.size(); i++) {
Map inMap = inList.get(i);
String oneDan = inMap.get("danwei").toString();//取出单位
if(danMaps.containsKey(oneDan)){
danMaps.put(oneDan, danMaps.get(oneDan)+Integer.valueOf(inMap.get("jine").toString()));
}else{
danMaps.put(oneDan, Integer.valueOf(inMap.get("jine").toString()));
danKeys.add(oneDan);
}
}

for (int i = 0; i < danKeys.size(); i++) {
Map map = new HashMap();
map.put("danwei",danKeys.get(i));
map.put("jine",danMaps.get(danKeys.get(i)));
outList.add(map);
}
return outList;
}

public static void main(String[] args) {
List list = new ArrayList();

Map map1 = new HashMap();
map1.put("danwei", "美元");
map1.put("jine", "1000");
list.add(map1);

Map map2 = new HashMap();
map2.put("danwei", "日元");
map2.put("jine", "2000");
list.add(map2);

Map map3 = new HashMap();
map3.put("danwei", "日元");
map3.put("jine", "1000");
list.add(map3);

Map map4 = new HashMap();
map4.put("danwei", "欧元");
map4.put("jine", "1500");
list.add(map4);

List tList = turn2Union(list);

for (int i = 0; i < tList.size(); i++) {
Map map = tList.get(i);
System.out.println(map.get("danwei")+":"+map.get("jine"));
}
}
}

回答3:

netbeans eclipse

回答4:

不好说啊,你的map里面的key是什么?