java 如何把一个list里的相同数的出现次数输出成另一个list

比如list的值是{1,2,2,5,4,4,3,2}
1出现1次,2出现3次,5出现1次,4出现2次,3出现1次
输出到一个新的list里{1,3,1,2,1}

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 Test {

public static void main(String[] args) {

List<Integer> list = new ArrayList<Integer>();//新建一个集合

list.add(1);
list.add(2);
list.add(2);
list.add(5);
list.add(4);
list.add(4);
list.add(3);
list.add(2);

Map<Integer, Integer> map = new HashMap<Integer, Integer>();//新建一个map集合,用来保存重复的次数

for(Integer obj: list){

if(map.containsKey(obj)){//判断是否已经有该数值,如有,则将次数加1
map.put(obj, map.get(obj).intValue() + 1);
}else{
map.put(obj, 1);
}
}

ArrayList<Integer> newList = new ArrayList<Integer>(map.values());//新建另外一个list

System.out.println(newList.toString());

}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-03-07
利用 indexOf功能,检索到不同index的,就同时删除两个、添加到另一个List中。
——如果考虑出现更多次数的,就直到indexOf=-1,再删除自己。
第2个回答  2012-03-07
旧list:list1 新list:list2
取list1的第一个值,放进list2中,循环list1,比较是否和list1的第一个值相同,如果相同删除.然后取list1的第一个值,放进list2中,循环list1,比较是否和list1的第一个值相同,如果相同删除,以此就可以了,代码自己实现吧,都给你写出来就没意思了
第3个回答  2012-03-07
你这个是数组吧
{1,2,2,5,4,4,3,2}

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

public class Test {

public static void main(String[] args) {

List<Integer> list = new ArrayList<Integer>();

list.add(1);
list.add(2);
list.add(2);
list.add(5);
list.add(4);
list.add(4);
list.add(3);
list.add(2);

Map<Integer, Integer> map = new HashMap<Integer, Integer>();

for(Integer obj: list){

if(map.containsKey(obj)){
map.put(obj, map.get(obj).intValue() + 1);
}else{
map.put(obj, 1);
}
}

ArrayList<Integer> newList = new ArrayList<Integer>(map.values());

System.out.println(newList.toString());

}

}

--------测试
[1, 2, 1, 3, 1]本回答被提问者采纳

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 Test {public static void main(String[] args) {...

JAVA一个泛型数组List<?> 怎么复制某几行到另外一个List<?>?
extends Number>void listMove(List <?>list1 , List<?> list2,Int i){list2.add(list1.get(i));}}但是请注意这里?号代表的是任意一个Number的子类,这意味着你如果传入像list1 是List<Long>而list2是List<Double>这样的同级泛型参数,就像这样来调用这个函数list1 = new List<Long >();...

怎么在java中将一个list中的内容添加至另一个list中
采用循环的方法。通过循环第一个ArrayList,然后通过每循环一次的方式,将值赋值给另一个ArrayList。具体代码实现如下:2.采用ArrayList自带的addAll()方法。addAll()方法是通过传入整一个List,将此List中的所有元素加入到新的List中,也就是当前List会增加的元素个数等于传入的List的大小。该方法较为简单...

java把一个list中的内容添加到另一个list中
采用循环的方法。通过循环第一个ArrayList,然后通过每循环一次的方式,将值赋值给另一个ArrayList。具体代码实现如下:2.采用ArrayList自带的addAll()方法。addAll()方法是通过传入整一个List,将此List中的所有元素加入到新的List中,也就是当前List会增加的元素个数等于传入的List的大小。该方法较为简单...

Java 将List中所有item中的某一个字段值提出来生成一个新的List
as .forEach(n -> a1s.add(n.a1));

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

java中数组String array{a,b,c,d,c,d,e}如何能把字段相同的分到另外的...
package test1;import java.util.Random;public class ArrayTest {public static void main(String[] args) {\/\/1、构建一个数组String[] array={"a","b","c","d","c","d","e"};\/\/2、将数组中值的遍历成一个StringString str="";for(int i=0;i<array.length;i++){str+=array[i...

java 项目 , List<实体>,需要获取list中的重复数据
类似这样的list.get(i).equals(list.get(i+1))去比较了。i+1不能大于数组的长度。不然越界了唉。 本回答被网友采纳 575792372 | 推荐于2018-03-04 20:58:28 举报| 评论 1 0 说个大概吧,list转成map集合如:map.put("1","{1,2,3,4}")...用Iterator iter =map.entrySet().iterator(); ...

java中怎样去除list中重复的数据,并且显示重复数据的条数
List<String> list = Arrays.asList("day", "walipo", "day", "walipo", "legeand", "day", "douwbo", "day", "day");Map<String, Long> collect = list.stream().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));System.out.println(collect);最后返回的...

java程序设计问题,查找两个list属性值相同的元素,并对差异
方法一:使用HashSet HashSet在Java中是一个不包含重复元素的集合。通过合并两个列表并计算差集,可以找出重复元素。以下代码示例展示了使用HashSet方法:此代码由全栈式全自动开发工具-飞算SoFlu软件机器人生成的AI-FuncGPT(慧函数)自动创建,通过输入“找出两个List中的重复元素”这一指令,瞬间生成了...

相似回答