java判断数组中相同字符串的个数

现在有一个数组a[]={2007,2008,2006,2004,1984,2007,2006,2006}数组长度不定,现在我要统计他们的个数例如上面的数组输出2007:2... 现在有一个数组a[]= {2007,2008,2006,2004,1984,2007,2006,2006}

数组长度不定,现在我要统计他们的个数

例如上面的数组

输出2007:2
2006:3
2008:1
2004:1
1984:1
int a[]= {2007,2008,2006,2004,1984,2007,2006,2006}

数组可能有点麻烦,现在我把这些年全部放入list中了,请问如何能获得我的输出结果?

8vip好像是个好主意,写入MAP中,可是不知道怎么写入效率比较高。

℡玥玥吊 的虽然能出结果 但是不可行,如果有100个年份怎么处理呢?
展开
 我来答
microAllen
2009-04-15 · TA获得超过553个赞
知道小有建树答主
回答量:137
采纳率:0%
帮助的人:232万
展开全部
楼主应该是希望用尽量少的时间和代码来实现不确定个数的数字统计:
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;

public class NumberCount {
public static void main(String[] args) {
// example array
List<Integer> numList = Arrays.asList(2007,2008,2006,2004,1984,2007,2006,2006);

HashMap<String, Integer> map = new HashMap<String, Integer>();
long startTime = System.currentTimeMillis();
for (int num : numList) {
// the number occurs not the first time
if (map.containsKey(String.valueOf(num)))
// add the count of the number
map.put(String.valueOf(num), map.get(String.valueOf(num)) + 1);
else
// the number occurs the first time
map.put(String.valueOf(num), 1);
}

// print the count of the numbers in the list
for (String numStr : map.keySet())
System.out.println("The count of the " + numStr + ":" + map.get(numStr));
long endTime = System.currentTimeMillis();
System.out.println("The program cost :" + (endTime - startTime) + " milliseconds.");
}
}
使用Map的话,就算数字很多的话应该也能很好的折中,顺便打出程序花费时间,希望大家在满足楼主不确定年份个数的要求后,实现最小的开销,大家一起学习哈 ^_^
程序输出:
The count of the 2008:1
The count of the 2006:3
The count of the 2007:2
The count of the 2004:1
The count of the 1984:1
The program cost :31 milliseconds.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
℡玥玥弔
2009-04-15 · TA获得超过1590个赞
知道答主
回答量:119
采纳率:0%
帮助的人:96.7万
展开全部
public static void main(String args[]){
String a[]= {"2007","2008","2006","2004","1984","2007","2006","2006"};
int _2007 = 0;
int _2008 = 0;
int _2006 = 0;
int _2004 = 0;
int _1984 = 0;
for(int i = 0;i<a.length;i++){
if(a[i].equals("2007")){
_2007++;
}
if(a[i].equals("2008")){
_2008++;
}
if(a[i].equals("2006")){
_2006++;
}
if(a[i].equals("2004")){
_2004++;
}
if(a[i].equals("1984")){
_1984++;
}
}
System.out.println("2007:"+_2007);
System.out.println("2008:"+_2008);
System.out.println("2006:"+_2006);
System.out.println("2004:"+_2004);
System.out.println("1984:"+_1984);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式