java取List中重复的数据!

作者&投稿:芝胞 (若有异议请与网页底部的电邮联系)
java list集合 取出重复数据并返回最大的值~

java list集合 取出重复数据并返回最大的值:
循环list中的所有元素然后删除重复
public static List removeDuplicate(List list) {
for ( int i = 0 ; i < list.size() - 1 ; i ++ ) {
for ( int j = list.size() - 1 ; j > i; j -- ) {
if (list.get(j).equals(list.get(i))) {
list.remove(j);
}
}
}
return list;
System.out.println("max的值为: " + Collections.max(list));
}

寻找相同的数据, 可以使用多种方式,下面简单介绍2种
第一种: 循环遍历,然后在把每一个元素,在其他集合里查找, 如果都存在该元素,就把这个元素保存起来
第二种: java8流处理, 原理差不多, 但是语法比较简洁
稍微注意的是list1 = {'A','A','B'}和list2 = {'A','C'} 如果粗糙的求交集,会得到一个交集结果{'A','A'}, 但是如果要严格取交集那么结果是一个'A'
解决起来很简单, 创造一个boolean[] b2=new boolean[list2.size]; 该boolean数组用于标记,list2的元素,哪些被使用了,哪些没有被使用.被使用的立刻标记为true .下次不再使用.
简单的参考代码: 可以按照自己的需求进行扩展和完善
import java.util.ArrayList;import java.util.Arrays;import java.util.stream.Collectors;public class Demo1 {//为了方便, 全部定义成静态属性,方便静态方法内使用static ArrayList list1 = new ArrayList(Arrays.asList(1, 2, 3, 4, 5, 6));static ArrayList list2 = new ArrayList(Arrays.asList(11, 22, 33, 44, 55, 6));static ArrayList list3 = new ArrayList(Arrays.asList(12, 13, 14, 15, 16, 6));public static void main(String[] args) {test1();//java8 流处理test2();//传统遍历循环进行处理}//流处理求交集private static void test1() {System.out.println("list1,list2,list3的交集是:");list1.stream().filter(num -> list2.contains(num) && list3.contains(num)).collect(Collectors.toList()).stream().forEach(System.out::println);}//循环遍历求交集private static void test2() {ArrayList result = new ArrayList();for (Integer num : list1) {if (list2.contains(num) && list3.contains(num)) {result.add(num);}}System.out.println("list1,list2,list3的交集是:");for (Integer i : result) {System.out.println(i);}}}

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<Map<Integer,String>> list=new ArrayList<Map<Integer,String>>();

Map<Integer,String> map2=new HashMap<Integer,String>();
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<list.size();i++){
Map<Integer,String> tempMap=list.get(i);
 for(Entry<Integer,String> e:tempMap.entrySet()){
 System.out.println("K: "+e.getKey()+" v: "+e.getValue());
 }}

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

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

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


}


public List<Map<String,Integer>> executMoedth(List<Map<Integer,String>> list){

 System.out.println("---------------------处理中--------------------------");
 List<Map<String,Integer>> newList=new ArrayList<Map<String,Integer>>();
Map<String,Integer> newMap=new HashMap<String,Integer>();  
 
for(int i=0;i<list.size();i++){

Map<Integer,String> tempMap=list.get(i);//第i个list中的Map

 for(Entry<Integer,String> e1:tempMap.entrySet()){//map遍历 
 int tempi=0;
 for(Entry<Integer,String> 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;

}

}


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<Map> turn2Union(List<Map> inList){
List<Map> outList = new ArrayList<Map>();//用于返回list
Map<String,Integer> danMaps = new HashMap<String,Integer>();//用于记录单位和金额如果金额不是整数就把Integer改成double啥的
List<String> danKeys = new ArrayList<String>();//用于记录单位


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<Map> list = new ArrayList<Map>();

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<Map> 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"));
}
}
}


netbeans eclipse

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


我家的AVA下好后 提取战地之王客户端资源 到了100%后就没了。怎么回事...
在system.ini文件中[BOOT]下面的“shell =文件名。正确的文件名应该是的”explorer.exe“,如果不是的”explorer.exe“,而是一个”的Shell = Explorer.exe程序名,那幺,后面的程序就是“木马”程序,就是说你已经中“木马”。最复杂的在注册表中,输入regedit命令打开注册表编辑器,点击的目录:“H...

我家ava就是进不去这些频道啊总是失败,重新登陆进去和重启机子都是这样...
我也不知道怎样降低,好像有一个办法,就是去商城买战斗力清零卡(楼主你买的时候要看仔细了,找一个综合战斗力清零的图片,千万不要买错了。网址http:\/\/daoju.qq.com\/ava\/list\/4-0-0-0-0-0-0-0-0-0-0-00-0-0-1-1.shtml,应该是第四个),把你的综合战斗力降到0,就可以进去了。...

ArrayList和List有什么区别?
ArrayList和List两者有以下主要区别:实现方式:ArrayList是List接口的一个实现类,而List是一个接口。这意味着ArrayList可以作为List的实例使用,但反之则不成立。内部数据结构:ArrayList底层是用动态数组实现的,而List底层可能是链表或者动态数组。这使得ArrayList在随机访问元素时(即通过索引访问元素)速度更...

AVA怎么换游戏名
楼主你好,要换游戏名就要花15Q币买个改名卡、你点开这个网址、 http:\/\/gameshop.qq.com\/market\/ava\/shopping_list.htm?iType=4&iSubType=1 会看到昵称修改、你点一下购买、系统自动给你放到购物车里、你在到购物车那直接用Q币购买就可以了、购买成功后、要在网页上使用、就是我的功能道具里面、...

安装ava时显示错误码-2147024784怎么办
在找到主目录里面有个应用程序保护 选择脚本和可执行文件 就好了)二.1、看看是不是空间的问题,如果空间不够,要加大空间。2、如果加大空间还不能生成的话,将有问题的目录下的 index.html(index.*)以及 List_*.html 删除。3、重新生成,OK,我就是这样解决的。再不行就 将AVA全部卸载掉包括...

AVA团队竞技步法技巧?
m4a1在ava中不是ak众说的那么鸡肋。 我的打法是4-5发连射,争取一轮连射搞定敌人。 不行就移动1-2步,或者闪到掩体后,迅速再闪出来,继续一轮连射,基本不用压枪,手感好的时候,还是感觉非常不错的。 特别是近距离遇到侦察兵,m4a1的高射速和连射的稳定信完全不输p90 野牛之类的枪械。 正因为m4a1第一轮连射很...

中性的英文名。
Celestine ['selistin] 塞莉斯廷\/塞莱斯廷 Charlene [ʃa:'li:n] 夏琳 Cherry ['tʃeri:] 彻丽\/彻里 Christian ['kristʃən] 克里斯琴 Christy ['kristi:] 克里斯蒂 Claire [klɛə] 克莱尔 Claude [klɔ:d] ...

开AVA占CPU使用率100%,CPU温度升高。
以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist \/svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist \/svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的...

玩战地之王(AVA)时,CPU使用率100%
可运行战地之王(AVA)时,CPU的使用率就高到100%,而且是一直100%,其他的程序可都没开啊!玩其他的网游CPU的使用率都是50%左右,还算正常。玩战地之王(AVA)使用率虽然达到100%,可玩了2多小时,也没出现死机,重起,蓝屏等现象,玩着也不卡。而且CPU的温度和开其他网游的温度一样,温度没上升。运行战地之王(AVA)...

怎样才有更高机会获得AVA莫辛—纳甘
楼主您好抽奖你看你的运气的。这个没有任何的技巧的。你可以找人少的时候去。这样就不会抽到一半被别人抽走了。 逝 呿。 很荣幸的为您解答。如有疑问请继续追问。我会在收到的第一时间为您解答。

阳曲县15774395442: java找出list重复数据 -
机迹誉舒: List<Student> newList = new ArrayList<Student>(); for(Student stu:StuList){if(stu.getXXX 和某个值相等){newList.add(stu);} }newList存放结果

阳曲县15774395442: java怎样把两个list里边相同的数据取出 -
机迹誉舒: List里面有一个“contains”的方法,可以知道list里面是否存在某个值: import java.util.ArrayList; import java.util.List;public class I { public static void main(String[] args) { List<Integer> list1 = new ArrayList<Integer>();for (int i = 0; i < 7; i++) {list...

阳曲县15774395442: java中如何获取list里面相同的元素? -
机迹誉舒: 一般情况只有用for循环或者foreache然后放到map里面!

阳曲县15774395442: java 项目 , List<实体>,需要获取list中的重复数据 -
机迹誉舒: java项目中获取list重复数据可以使用list的reduplicateIndex方法,实例如下:public static void main(String[] args) throws Exception {List list = new ArrayList();list.add("123");list.add("456");list.add("555");list.add("123");list.add("...

阳曲县15774395442: java找出list重复数据
机迹誉舒: List&lt;Student&gt; newList = new ArrayList&lt;Student&gt;(); for(Student stu:StuList){ if(stu.getXXX 和某个值相等){ newList.add(stu); } } newList存放结果

阳曲县15774395442: java list中怎样取得重复的整条数据,每个字段都重复的整条数据. -
机迹誉舒: 那你只有循环提取list中的每一个数据,然后和其他每一个进行比较.

阳曲县15774395442: java 如何把一个list里的相同数的出现次数输出成另一个list -
机迹誉舒: java将list相同次数输出到另外一个list,可以使用map作为中间转换的结合,将重复的次数赋值给value,而key值为list原来的内容,实例如下:import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class ...

阳曲县15774395442: java 中 .数据库中有10万条记录 list中有5万条 ,怎样不通过for循环,找出数据库和list中相同的数据? -
机迹誉舒: 首先,不通过循环来实现这种需求是不可能的,即使你使用了java有关collection的api,看似没有循环,其内部还是有循环的 其次,你对重复数据的定义很含糊,是数据的主键相同就算数据相同,还是数据的所有字段相同才算数据相同,这里要有明确定义我觉得,我的做法是这样的,先将list中5万条数据分成5个新list,每个list中1万条数据,然后将数据库中的数据读取出来,每一万条一个list,也就是10个list 然后写五个线程,分别进行对比,注意,list是非线程安全的,也就是说,你要实现线程安全的方法

阳曲县15774395442: java如何读取Excel并存入list中时去除重复记录 -
机迹誉舒: 你做下判断就好了, 你取出一个list然后循环这个list,每一条数据肯定有个字段会有个相同,然后你判断一下,如果不相同就把这条记录放到你新new 的一个list中,如果相同就是重复了,不做处理,继续循环就好了,得到的这个新的list就是你想要的不重复的list的了

阳曲县15774395442: 在java中,如何将两个list中的相同值赋到另外一个list中? 分不多见谅 - -- -
机迹誉舒: for(String s1:list1){ for(String s2:list2){ if(s1.equals(s2)){ list3.add(s1) }}} 在这之前不过你先需要知道2个list中是否有多个相同的数据,我这个是最简单.当然用for(;;)应该更容易理解

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网