如何统计ArrayList中元素出现的次数

cookies713 2010-12-11 03:57:48
RT.如何统计ArrayList中元素出现的次数
比如:ArrayList中的元素有1,12,43,12,13,12,43,那么相应1出现的次数就是1,12出现的次数就是3,43出现过的次数是2,13出现的次数是1.
元素是动态往ArrayList中加的,是不是加进来一个元素要逐个和之前的元素比较呢。。
...全文
2897 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaosijun2004 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 nbda1121440 的回复:]
Java code

import java.util.*;

public class ArrayListTest {

public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
int[] array = {1,……
[/Quote]

学习
guomaolin 2010-12-11
  • 打赏
  • 举报
回复
这个问题只能这样设计
先定义一个集合(ArraryList)来添加元素
如果现在想计算元素个数 则再定义一个数组就行了

现在向Arrarylist中添加元素 将第一个元素将这个元素加入数组中
接着加第二个元素 如果第二个元素不等于第一个元素则也加到数组中 否则不加到数组中。这样最后数组中的元素全是唯一的并且有所有的Arrarylist元素。

遍历Arrarylist的时候每一个元素个数组比较 数组中存在则++操作。
lxy15329 2010-12-11
  • 打赏
  • 举报
回复
可以看看jdk自带的源程序中算法是怎么实现的
周靖峰 2010-12-11
  • 打赏
  • 举报
回复

import java.util.*;

public class ArrayListTest {

public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
int[] array = {1, 12, 43, 12, 13, 12, 43};
for (int i : array) {
list.add(new Integer(i));
}
System.out.println(Collections.frequency(list, new Integer(1)));
System.out.println(Collections.frequency(list, new Integer(12)));
System.out.println(Collections.frequency(list, new Integer(43)));
System.out.println(Collections.frequency(list, new Integer(13)));
}
}

林二棍子 2010-12-11
  • 打赏
  • 举报
回复
我汗。java.util.Collections 工具类。自己看API或者调用一下就知道了。
cookies713 2010-12-11
  • 打赏
  • 举报
回复
能具体点吗 谢了[Quote=引用 6 楼 nicholas_lin 的回复:]

调用函数

Collections.frequency(Collection<T>, T object)
[/Quote]
林二棍子 2010-12-11
  • 打赏
  • 举报
回复
调用函数

Collections.frequency(Collection<T>, T object)
cookies713 2010-12-11
  • 打赏
  • 举报
回复

具体地,假定ArrayList内容为0101121212343456。。。我们如何统计01出现的次数是2,12出现过的次数是3,34出现的次数是2,56出现的次数的1(内容不仅是动态增加的 而且我们还要两个两个地分析)对应的次数要保存起来。。


[Quote=引用 4 楼 darling_sheep 的回复:]

import java.util.ArrayList;
import java.util.Scanner;
public class Answer {
ArrayList<Integer> list=new ArrayList<Integer>();
int []number={1,12,43,12,13,12,43};
public void inputList(){ //将这些数字……
[/Quote]
Darling_sheep 2010-12-11
  • 打赏
  • 举报
回复
import java.util.ArrayList;
import java.util.Scanner;
public class Answer {
ArrayList<Integer> list=new ArrayList<Integer>();
int []number={1,12,43,12,13,12,43};
public void inputList(){ //将这些数字添加到集合里面
for(int i=0;i<number.length;i++){
list.add(number[i]);
}
}
public int getAmount(Integer i){ //计算输入数字的个数
int amount=0;
while(list.remove(i)){
amount++;
}
return amount;
}
public static void main(String o[]){
Answer yourAnswer=new Answer();
yourAnswer.inputList();
Scanner sc = new Scanner(System.in);
System.out.print("Please enter a number:");
int getInput=sc.nextInt(); //输入一个数字
int amount=yourAnswer.getAmount(getInput);
System.out.println("The amount of "+getInput+" in the list is "+amount);
}
}
刚写完,试了一下,应该能满足你的要求。我的分数很少,如果可以的话施舍一点吧??
cookies713 2010-12-11
  • 打赏
  • 举报
回复
具体地,假定ArrayList内容为0101121212343456。。。我们如何统计01出现的次数是2,12出现过的次数是3,34出现的次数是2,56出现的次数的1(内容不仅是动态增加的 而且我们还要两个两个地分析)
yzshijun 2010-12-11
  • 打赏
  • 举报
回复
加进去时比较可以,其他的也没有试过!
taoyongming 2010-12-11
  • 打赏
  • 举报
回复
貌似就是加进去的时候比较下吧,其他方法不清楚,等高手回答了

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧