黑马程序员技术交流社区
标题:
集合问题
[打印本页]
作者:
某某帅
时间:
2016-9-16 23:13
标题:
集合问题
(1)有如下代码:
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("b");
list.add("b");
list.add("c");
list.add("d");
list.add("d");
list.add("d");
list.add("d");
list.add("d");
System.out.println(frequency(list, "a")); // 3
System.out.println(frequency(list, "b")); // 2
System.out.println(frequency(list, "c")); // 1
System.out.println(frequency(list, "d")); // 5
System.out.println(frequency(list, "xxx")); // 0
(2)定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1
作者:
zzdhm
时间:
2016-9-17 00:00
本帖最后由 zzdhm 于 2016-9-17 00:06 编辑
public static int frequency(List<String> list, String string) {
HashMap<String, Integer> hm = new HashMap<>(); // 创建HashMap集合,键为要list集合中的元素,值为出现的个数
for (String st : list) { // 遍历,将元素到hm集合中
if (hm.containsKey(st)) { // 判断是否集合中包含
hm.put(st, hm.get(st) + 1); // 包含值加1
} else {
hm.put(st, 1); // 不包含 值为1
}
}
if (!hm.containsKey(string)) { // 循环完,没有该字符串,返回0
return 0;
}
return hm.get(string); // 返回键对应的值
}
//方法2 :
public static int frequency(List<String> list, String string) {
int count=0;
for (String st : list) {
if(string.equals(st)){
count++;
}
}
return count;
}
作者:
a869588615
时间:
2016-9-17 00:03
看到大神的回复,学习到了新知识。
作者:
taozhihui
时间:
2016-9-17 00:15
public static int frequency(List<String> list, String string) { int count=0; for (String st : list) { if(string.equals(st)){ count++; } } return count; }
作者:
宝瓶子
时间:
2016-9-17 00:17
可以用计数器思想
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2