扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
list中如何判断相同值的个数?
比如说一个list,里面是1,1,2,2,3,3,3,4,4
如何得到1有2个,2有2个,3有3个,4有2个?
我有个笨办法。
比如你已经知道list里的数就0-9之间,就建个数组,假设叫count[10]
然后,count[list里的数]++;
如果list里的数个数未知,也是这么个意思,就是麻烦点。
List <Integer> list = new ArrayList <Integer>(); Map <Integer,Integer> map = new HashMap <Integer,Integer>(); for(Integer i :list){ map.put(i, map.get(i)+1); } |
List <Integer> list = new ArrayList <Integer>();
Map <Integer,Integer> map = new HashMap <Integer,Integer>();
for(Integer i :list){
map.put(i, map.get(i)+1);
}
你先把你的数组赋值给另一个数组,两个数组对比,只要“下标”不一样,并且相等的,就找出来。 |
package com.java.others;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
* 计算字符串的字符出现的次数
* @author lichaoever
*
*/
public class getCount {
List<String> list = new ArrayList<String>();
Scanner s = new Scanner(System.in);
public getCount() {
System.out.println("请输入字符:");
this.count(s.nextLine());
}
private void count(String str)
{
char[] c = str.toCharArray();
for(char s : c)
{
list.add(String.valueOf(s));
}
Collections.sort(list);
for(String s : list)
{
int begin = list.indexOf(s);
int end = list.lastIndexOf(s);
System.out.println("字母'"+ s + "'有:"+(end - begin + 1)+"个");
}
}
public static void main(String[] args) {
new getCount();
}
}
import java.util.ArrayList; import java.util.List; public class B { public static void main(String[] args) { List<Integer> list = initData(); int x = list.size(); while(list.size()!=0){ List<Integer> arr = list; Integer obj = list.get(0); List<Integer> l1 = new ArrayList<Integer>(); l1.add(obj); arr.removeAll(l1); System.out.println(obj+"出现"+(x-arr.size())+"次"); x = arr.size(); } } public static List<Integer> initData(){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(1); list.add(2); list.add(2); list.add(3); list.add(3); list.add(3); list.add(4); list.add(4); return list; } }
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者