找出一组数中相同的数据并取出计算出长度

最近在写一些东西的时候突然遇到以下问题:

比如,一组数{1,1,2,3,4,5,5,3},怎么从这组数中取出相同的数并且保证取出的数当做此数组的key,例如上述数组经过取之后变成{1,{1,1}},{2,{2}},{3,{3,3},{4,{4}},{5,{5,5}},并且计算出每组数组的长度

下面贴出代码:

public class Test {
	public static void main(String[] args) {
		ArrayList<String> list=new ArrayList<>();
		
		
		HashMap<String, ArrayList<String>> map=new HashMap<>();
		list.add("1");
		list.add("2");
		list.add("3");
		list.add("5");
		list.add("2");
		list.add("3");
		list.add("7");
		list.add("8");
		list.add("3");
		list.add("5");
		list.add("2");
		list.add("3");
		list.add("7");
		int deg;
		for(int i=0;i<list.size();i++){
			ArrayList<String> list2=new ArrayList<>();
			for(int j=i+1;j<list.size();j++){
				if (list.get(i).equals(list.get(j))) {
					list2.add(list.get(j));
					list.remove(j);
				}
				
			}
			map.put(list.get(i), list2);
			
		}
		
		for (Map.Entry entry:map.entrySet()) {
			ArrayList<String> list1=new ArrayList<>();
			String string=entry.getValue().toString();
			System.out.println("key="+entry.getKey()+",value="+entry.getValue());
			//System.out.println(string.length());
			if (string!=null&&string.length()!=0&&string!="[]") {
				String s=string.substring(1,string.length()-1);
				
				
				//正则表达式,以,空格或者空格为分割符
				String a[]=s.split(", | ");
				for(int i=0;i<a.length;i++){
					list1.add(a[i]);
					//System.out.println(a[i]);
				}
			System.out.println("此数组的长度:"+list1.size());
		
			
		}else {
			System.out.println("此数组长度为0");
		}
	}
		
	}
}
结果为:

key=1,value=[]
此数组长度为0
key=2,value=[2, 2]
此数组的长度:2
key=3,value=[3, 3, 3]
此数组的长度:3
key=5,value=[5]
此数组的长度:1
key=7,value=[7]
此数组的长度:1
key=8,value=[]
此数组长度为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值