开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
forked from yswift/LearnJava
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (1)
master
master
分支 (1)
master
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (1)
master
LearnJava
/
Advanced
/
src
/
common
/
StreamE2.java
LearnJava
/
Advanced
/
src
/
common
/
StreamE2.java
StreamE2.java 3.96 KB
一键复制 编辑 原始数据 按行查看 历史
yswift 提交于 2019年05月10日 18:54 +08:00 . add stream 案例
package common;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.stream.Collectors;
import java.util.stream.Stream;
// Stream 案例2
public class StreamE2 {
// 生成count个随机的学生信息
List<Student> newStudents(int count) {
return Stream.generate(Student::new).limit(count).collect(Collectors.toList());
}
void print(List<Student> list) {
list.forEach(System.out::println);
}
// 输出年龄大于20的学生
void printAgeThan20(List<Student> list) {
System.out.println("出年龄大于20的学生");
list.stream().filter(s -> s.age > 20).forEach(System.out::println);
}
// 输出年龄大于19学生
void printAgeThan19(List<Student> list) {
}
// 输出专业是计科的学生
void printMajorIsComputer(List<Student> list) {
System.out.println("输出专业是计科的学生");
list.stream().filter(s -> "计科".equals(s.major)).forEach(System.out::println);
}
// 输出专业是通信的学生的姓名
void printNameOfMajorIsComputer(List<Student> list) {
System.out.println("输出专业是计科的学生的姓名");
list.stream().filter(s -> "计科".equals(s.major))
.map(s -> s.name)
.forEach(System.out::println);
}
// 输出专业是电气的学生
void printMajorIsDq(List<Student> list) {
}
// 输出专业是电气的学生的姓名
void printNameOfMajorIsDq(List<Student> list) {
}
// 按专业分组
void groupMajor(List<Student> list) {
System.out.println("按专业分组");
Map<String, List<Student>> byMajor = list.stream().collect(Collectors.groupingBy(s -> s.major));
byMajor.forEach((key, value) -> {
System.out.println("专业: " + key);
value.forEach(System.out::println);
});
}
// 按年龄分组
void groupAge(List<Student> list) {
}
// 按专业分组, 输出各专业人数
void countGroupMajor(List<Student> list) {
System.out.println("按专业分组, 输出各专业人数");
Map<String, Long> byMajor = list.stream().collect(Collectors.groupingBy(
s->s.major, Collectors.counting()));
byMajor.forEach((key, value) -> System.out.println(key + " : " + value));
}
// 按年龄分组, 输出各年龄段人数
void countGroupAge(List<Student> list) {
}
// 用逗号拼接姓名
void joinName(List<Student> list) {
System.out.println("用逗号拼接姓名");
String joined = list.stream().map(s -> s.name).collect(Collectors.joining(",", "[", "]"));
System.out.println(joined);
}
// 用逗号拼接专业,输出时去掉重复专业
void joinMajor(List<Student> list) {
}
public static void main(String[] args) {
StreamE2 e2 = new StreamE2();
List<Student> list = e2.newStudents(10);
e2.print(list);
e2.printAgeThan20(list);
e2.printMajorIsComputer(list);
e2.printNameOfMajorIsComputer(list);
e2.groupMajor(list);
e2.countGroupMajor(list);
e2.joinName(list);
}
}
class Student {
static int id = 1;
static String[] majors = {
"计科","机械","电气","通信","信息安全"
};
// 学号
String no;
// 姓名
String name;
// 专业
String major;
// 年龄
int age;
Student() {
Random r = new Random();
// 使用随机值初始化类
no = String.format("20%02d%02d%06d", 10+r.nextInt(10), r.nextInt(10), r.nextInt(200));
name = "学生" + id++;
major = majors[r.nextInt(majors.length)];
age = 18 + r.nextInt(4);
}
@Override
public String toString() {
return "Student{" +
"no='" + no + '\'' +
", name='" + name + '\'' +
", major='" + major + '\'' +
", age=" + age +
'}';
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

Java 相关课程源码
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Java
1
https://gitee.com/notfand/LearnJava.git
git@gitee.com:notfand/LearnJava.git
notfand
LearnJava
LearnJava
master
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /