2020-11-12 21:30发布
/**
* 使用Lambda表达式实现过滤统计
*/
public void countListItemNum(List list) {
// 使用Map存储List中每个元素的数量:
// key:元素 value:数量
Map result = new HashMap<>();
list.forEach(item->{
long count = list.stream().filter(f->
item.equals(f)).count();
result.put(item, count);
});
// 遍历结果map
result.forEach((k,v)->{
System.out.println(k + ":" + v);
}
* java统计List集合中每个元素出现的次数
* 例如frequencyOfListElements(["111","111","222"])
* ->
* 则返回Map {"111"=2,"222"=1}
* @param items
* @return Map
* @author wuqx
public static Map frequencyOfListElements( List items ) {
if (items == null || items.size() == 0) return null;
Map map = new HashMap();
for (String temp : items) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
return map;
public static void main(String[] args) {
// 1 10
// 1 20
// 2 10
// 3 57
// 1 2
// 3 24
List strList = new ArrayList();
List one = new ArrayList();
List two = new ArrayList();
List three = new ArrayList();
strList.add(new int[]{1, 10});
strList.add(new int[]{1, 20});
strList.add(new int[]{2, 10});
strList.add(new int[]{3, 57});
strList.add(new int[]{1, 2});
strList.add(new int[]{3, 24});
for(int i=0;i int[] temp = (int[]) strList.get(i); if(temp[0]==1){ one.add(temp[1]); }else if(temp[0]==2){ two.add(temp[1]); }else if(temp[0]==3){ three.add(temp[1]); } } System.out.println("1: "+one.get(0)+","+one.get(1)+","+one.get(2)); System.out.println("2: "+two.get(0)); System.out.println("3: "+three.get(0)+","+three.get(1)); }
int[] temp = (int[]) strList.get(i);
if(temp[0]==1){
one.add(temp[1]);
}else if(temp[0]==2){
two.add(temp[1]);
}else if(temp[0]==3){
three.add(temp[1]);
System.out.println("1: "+one.get(0)+","+one.get(1)+","+one.get(2));
System.out.println("2: "+two.get(0));
System.out.println("3: "+three.get(0)+","+three.get(1));
Java提供的众多集合类由两大接口衍生而来:Collection(单列集合)接口和Map(双列集合)接口一 、Collection接口Collection接口定义了一个包含一批对象的集合。接口的主要方法包括:size() - 集合内的对象数量add(E)/addAll(Collection) - 向集合内添加单个/批...
集合的话,分单列集合和双列集合,单列集合的话就是Collection接口,下面有两个子接口:Set和List。其中呢Set集合是一个不可有重复元素的无序集合;List是一个有序的集合,可以包含重复元素并且提供了按索引访问的方式。双列集合的话就是Map接口,它的实现类...
list元素可重复,set元素唯一,map存储键值对。ArrayList实现原理是数组,是非线程安全的,同样效果线程安全使用vector。LinkedList实现原理是链表,是非线程安全的,线程安全使用ConcurrentLinkedQueue。HashSet实现原理是哈希表,元素是无序的。TreeSet实现...
Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。集合框架的类和接口均在java.util包中。任何对象加入集合类后,自动转变为Object类型,所以在取出的...
Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。
最多设置5个标签!
/**
* 使用Lambda表达式实现过滤统计
*/
public void countListItemNum(List list) {
// 使用Map存储List中每个元素的数量:
// key:元素 value:数量
Map result = new HashMap<>();
list.forEach(item->{
long count = list.stream().filter(f->
item.equals(f)).count();
result.put(item, count);
});
// 遍历结果map
result.forEach((k,v)->{
System.out.println(k + ":" + v);
});
}
/**
* java统计List集合中每个元素出现的次数
* 例如frequencyOfListElements(["111","111","222"])
* ->
* 则返回Map {"111"=2,"222"=1}
* @param items
* @return Map
* @author wuqx
*/
public static Map frequencyOfListElements( List items ) {
if (items == null || items.size() == 0) return null;
Map map = new HashMap();
for (String temp : items) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
}
return map;
}
public static void main(String[] args) {
// 1 10
// 1 20
// 2 10
// 3 57
// 1 2
// 3 24
List strList = new ArrayList();
List one = new ArrayList();
List two = new ArrayList();
List three = new ArrayList();
strList.add(new int[]{1, 10});
strList.add(new int[]{1, 20});
strList.add(new int[]{2, 10});
strList.add(new int[]{3, 57});
strList.add(new int[]{1, 2});
strList.add(new int[]{3, 24});
for(int i=0;i
int[] temp = (int[]) strList.get(i);
if(temp[0]==1){
one.add(temp[1]);
}else if(temp[0]==2){
two.add(temp[1]);
}else if(temp[0]==3){
three.add(temp[1]);
}
}
System.out.println("1: "+one.get(0)+","+one.get(1)+","+one.get(2));
System.out.println("2: "+two.get(0));
System.out.println("3: "+three.get(0)+","+three.get(1));
}
/**
* java统计List集合中每个元素出现的次数
* 例如frequencyOfListElements(["111","111","222"])
* ->
* 则返回Map {"111"=2,"222"=1}
* @param items
* @return Map
* @author wuqx
*/
public static Map frequencyOfListElements( List items ) {
if (items == null || items.size() == 0) return null;
Map map = new HashMap();
for (String temp : items) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
}
return map;
/**
* java统计List集合中每个元素出现的次数
* 例如frequencyOfListElements(["111","111","222"])
* ->
* 则返回Map {"111"=2,"222"=1}
* @param items
* @return Map
* @author wuqx
*/
public static Map frequencyOfListElements( List items ) {
if (items == null || items.size() == 0) return null;
Map map = new HashMap();
for (String temp : items) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
}
return map;
}
相关问题推荐
Java提供的众多集合类由两大接口衍生而来:Collection(单列集合)接口和Map(双列集合)接口一 、Collection接口Collection接口定义了一个包含一批对象的集合。接口的主要方法包括:size() - 集合内的对象数量add(E)/addAll(Collection) - 向集合内添加单个/批...
集合的话,分单列集合和双列集合,单列集合的话就是Collection接口,下面有两个子接口:Set和List。其中呢Set集合是一个不可有重复元素的无序集合;List是一个有序的集合,可以包含重复元素并且提供了按索引访问的方式。双列集合的话就是Map接口,它的实现类...
list元素可重复,set元素唯一,map存储键值对。ArrayList实现原理是数组,是非线程安全的,同样效果线程安全使用vector。LinkedList实现原理是链表,是非线程安全的,线程安全使用ConcurrentLinkedQueue。HashSet实现原理是哈希表,元素是无序的。TreeSet实现...
list元素可重复,set元素唯一,map存储键值对。ArrayList实现原理是数组,是非线程安全的,同样效果线程安全使用vector。LinkedList实现原理是链表,是非线程安全的,线程安全使用ConcurrentLinkedQueue。HashSet实现原理是哈希表,元素是无序的。TreeSet实现...
Java集合框架为程序员提供了预先包装的数据结构和算法来操纵他们。集合是一个对象,可容纳其他对象的引用。集合接口声明对每一种类型的集合可以执行的操作。集合框架的类和接口均在java.util包中。任何对象加入集合类后,自动转变为Object类型,所以在取出的...
Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。