「java集合统计」java集合用法
今天给各位分享java集合统计的知识,其中也会对java集合用法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、在Java集合中如果涉及到统计的话有哪个集合容器呢?
- 2、java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据
- 3、在java中,利用list集合存储成绩,输入成绩统计统计平均分,最高分,最低分和不及?
- 4、Java遍历集合,ArrayList统计集合中"def"字符串一共出现了多少个
- 5、java集合存储统计部门的职位
在Java集合中如果涉及到统计的话有哪个集合容器呢?
如果是集合的话,建议使用treemap集合容器。因为它的泛型有两个,键(key)和值(value)键是唯一了。而值可以变化。这样的方式非常适合做统计使用。
java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据
集合分组统计处理, 实现的方法很多,简单的写几种方法供参考;(理解后,自行扩展完善)
方法一:(Java8流处理粗略版) 该版本存在的问题:有些区间没有数据,就不打印显示该区间
import java.util.*;
import java.util.stream.*;
public class NumberDemo {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
// 给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
funStream(list, space);
}
private static void funStream(ArrayListInteger list, int space) {
// 使用流处理 把 数字分组
MapString, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {
return "区间:[" + num / space * space + "," + (num / space + 1) * space + ")";// 分组规则
}));
map.forEach((k,v)-{
System.out.println(k);
System.out.println("\t"+v.size()+"个数据");
});
}
}
方法二:(Java8流处理详细版) 就算有的区间是0个数据,照样打印出来
import java.util.*;
import java.util.stream.*;
public class NumberDemo2 {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
// 给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
funStream(list, space);
}
private static void funStream(ArrayListInteger list, int space) {
// 使用流处理 把 数字分组
MapInteger, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {
return num / space;// 分组规则
}));
// 获取集合里的最大值
OptionalInteger maxop = list.stream().collect(Collectors.maxBy(Integer::compareTo));
int max = maxop.orElse(0);
// 计算出区间的数量
int groups = max % space == 0 ? max / space : max / space + 1;
// 打印结果
for (int i = 0; i groups; i++) {
System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");
System.out.println("\t有" + (map.get(i)==null?0:map.get(i).size()) + "个数据");
// System.out.println("\t"+map.get(i));//把数据打印出来
}
}
}
方法三:(比较传统的方法)
import java.util.*;
public class NumberDemo3 {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
//给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
fun(list,space);
}
private static void fun(ArrayListInteger list, int space) {
Collections.sort(list);//排序
int max= list.get(list.size()-1);//取得最大值
int groups = max % space == 0 ? max / space : max / space + 1;//取得区间的数量
HashMapInteger,ArrayListInteger map=new HashMapInteger, ArrayListInteger();//存区间和该区间的数字
for (int i = 0; i groups; i++) {
map.put(i, new ArrayList());
}
//把元素添加到指定的区间
for (int i = 0; i list.size(); i++) {
map.get(list.get(i)/space).add(list.get(i));
}
//打印结果
for (int i = 0; i groups; i++) {
System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");
System.out.println("\t有"+ map.get(i).size()+"个数据");
//System.out.println("\t"+map.get(i));//把数据打印出来
}
}
}
测试效果如下
区间:[0,1000)
有5个数据
区间:[1000,2000)
有0个数据
区间:[2000,3000)
有1个数据
区间:[3000,4000)
有2个数据
区间:[4000,5000)
有2个数据
在java中,利用list集合存储成绩,输入成绩统计统计平均分,最高分,最低分和不及?
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
public class GradeList {
public static void main(String[] args) {
ArrayListInteger list = new ArrayList();
Scanner in = new Scanner(System.in);
int grade;
System.out.print("请输入成绩,以空格隔开,键入-1结束:");
while ((grade = in.nextInt())!=-1){
if(grade=0grade=100)
list.add(grade);
}
System.out.println("实际统计的人数为:"+list.size()+"\n实际统计的成绩为:"+list);
System.out.println("平均分:"+getAvg(list));
System.out.println("最高分:"+getMax(list));
System.out.println("最低分:"+getMin(list));
System.out.println("不及格:"+getBad(list));
}
public static double getAvg(ArrayListInteger list){
int sum = 0;
for (int i = 0; i list.size(); i++) {
sum += list.get(i);
}
return (double)sum/list.size();
}
public static int getMax(ArrayListInteger list){
Collections.sort(list);
return list.get(list.size()-1);
}
public static int getMin(ArrayListInteger list){
Collections.sort(list);
return list.get(0);
}
public static ArrayList getBad(ArrayListInteger list){
Collections.sort(list);
ArrayListInteger badGradeList = new ArrayListInteger();
for (int index=0; index list.size(); index++) {
int grade = list.get(index);
if (grade60)
badGradeList.add(grade);
}
return badGradeList;
}
}
main方法
求平均、最高、最低、不及格方法
Java遍历集合,ArrayList统计集合中"def"字符串一共出现了多少个
代码如下:
package tests;
import java.util.ArrayList;
import java.util.List;
public class Main
{
public static void main(String[] args)
{
ListString list = new ArrayList();
list.add("def");
list.add("def");
list.add("bcdef");
list.add("def");
// 方法一
int cnt = 0;
for(String s : list)
if(s.equals("def"))
cnt++;
System.out.println("cnt = " + cnt);
// 方法二
long cnt_2 = list.stream().filter(s - s.equals("def")).count();
System.out.println("cnt_2 = " + cnt_2);
}
}
打印结果:
cnt = 3
cnt_2 = 3
java集合存储统计部门的职位
java集合存储统计部门的职位是后端Java开发工程师。根据查询相关公开资料信息显示,后端Java开发工程师参与公司存储平台、分布式数据库平台建设,新技术研究以及实施。主要技术方向包括分布式对象存储、分布式KV存储、共享文件系统、分布式关系型数据库。负责分布式系统的需求分析,技术调研,方案设计,代码编写以及优化等工作。归于java集合存储统计部门。
关于java集合统计和java集合用法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。