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}... 比如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}
展开
 我来答
小傻

2015-09-24 · 知道合伙人软件行家
小傻
知道合伙人软件行家
采纳数:11567 获赞数:31134
已经做过两个上架的app和两个网页项目.

向TA提问 私信TA
展开全部

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());

}

}
bd9006
2012-03-07 · TA获得超过2.5万个赞
知道大有可为答主
回答量:4.8万
采纳率:63%
帮助的人:1.6亿
展开全部
利用 indexOf功能,检索到不同index的,就同时删除两个、添加到另一个List中。
——如果考虑出现更多次数的,就直到indexOf=-1,再删除自己。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
c7ge
2012-03-07 · TA获得超过317个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:140万
展开全部
旧list:list1 新list:list2
取list1的第一个值,放进list2中,循环list1,比较是否和list1的第一个值相同,如果相同删除.然后取list1的第一个值,放进list2中,循环list1,比较是否和list1的第一个值相同,如果相同删除,以此就可以了,代码自己实现吧,都给你写出来就没意思了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyingFish211
2012-03-07 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.5万
采纳率:50%
帮助的人:1.1亿
展开全部
你这个是数组吧
{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]
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式