Java 数数

Java 数数,java,Java,请帮我解决这个问题。 问题是,我有一个存储各种报警的表,现在我需要知道一个特定报警的计数。比如说 alarms --------- aaa aaa aaa ccc ccc aaa bbb bbb 如上表所示,我必须计算(aaa)在这种情况下重复的次数,对于bbb,它是4,对于bbb,它是2,对于ccc,它是2 如何解决这个问题?类似这样的问题: Hashtable<String, Integer> hash = new Hashtable<String,

请帮我解决这个问题。 问题是,我有一个存储各种报警的表,现在我需要知道一个特定报警的计数。比如说

alarms
---------
 aaa
 aaa
 aaa
 ccc
 ccc
 aaa
 bbb
 bbb   
如上表所示,我必须计算(aaa)在这种情况下重复的次数,对于bbb,它是4,对于bbb,它是2,对于ccc,它是2

如何解决这个问题?

类似这样的问题:

Hashtable<String, Integer> hash = new Hashtable<String, Integer>();
for (String alarm : alarms) {
    Integer count = hash.get(alarm);
    if (count == null) count = 1;
    else count++;
    hash.put(alarm, count);
}
String alarms = "aaa aaa aaa ccc ccc aaa bbb bbb";
String[] alarmCounter = alarms.split(" ");

for (String str : alarmCounter)
{
System.out.println("There are " + str.length + " alarms of type " + str.charAt(0));
}
Hashtable hash=new Hashtable();
用于(字符串报警:报警){
整数计数=hash.get(报警);
如果(count==null)count=1;
else-count++;
hash.put(报警、计数);
}

尝试迭代该报警列表。使用包含报警名称和计数的哈希映射。当你收到一个警报时,在HashMap上检查它,如果存在,增加计数,否则将它放入HashMap并将计数设置为1,重复直到结束。当您迭代该HashMap时,您将能够看到哪些已报警,以及报警次数

你能再多给我一点关于数据实际存储方式的信息吗

如果它完全按照您在这里提到的方式存储,即作为由空格分隔的字符串,那么您可以执行以下操作:

Hashtable<String, Integer> hash = new Hashtable<String, Integer>();
for (String alarm : alarms) {
    Integer count = hash.get(alarm);
    if (count == null) count = 1;
    else count++;
    hash.put(alarm, count);
}
String alarms = "aaa aaa aaa ccc ccc aaa bbb bbb";
String[] alarmCounter = alarms.split(" ");

for (String str : alarmCounter)
{
System.out.println("There are " + str.length + " alarms of type " + str.charAt(0));
}

我不确定您使用的单词table是否表示数据库表,但我认为它表示数据库表。如果是这种情况,我建议编写SQL,直接从表中获取出现次数

select count(*) from table where alarms = 'aaa';
或者,如果必须对每种报警类型执行此操作,可以执行如下查询:

select alarms, count(alarms) from table group by alarms;

从那里你可以像其他人所说的那样将它存储在一个
HashMap
中。当然,如果您不是指数据库表,那么可以忽略此答案。=)

什么是
报警
?这是一个数组还是一个列表?这实际上是一个SQL问题吗?如果你在编写代码时感到困惑,那么告诉我,欢迎你修复它并给出建议。为什么是Hashtable而不是HashMap?不要再使用Hashtable了,它是一个遗留库,有很多更好的选择。在本例中,使用HashMap代替Ishtar提到的方法。Hashtable在所有的add/remove方法上都有笨拙的同步