当前位置: 首页 > news >正文

新手小白Java学习日记

Day3

今天学习了

1.不可变集合

调用of方法可以创建,并传入多个参数,例如:

List.of() Set.of() Map.of()

其中Map中的of方法只能传递20个参数,即10个键值对,

为解决这一问题,可以用ofEntries方法,其中传入的参数需要是数组结构:

HashMap<String,String> hm=new HashMap<>(); //...put方法传入参数 Set<Map.Entry<String,String>> entries=hm.entrySet(); Map.Entry[] arr=entries.toArray(new Map.Entry[0]); Map map=Map.ofEntries(arr);

这个代码是将hm里的参数传递给map集合,用Map调用ofEntries方法即可实现传递多个函数。

但是在此之前,需要将hm中的键值对导出,变为数组,才能传递给方法。

不过在JDK10之后,copyOf()方法即可实现

Map.copyOf(hm);

2.Stream流

顾名思义就是把不同的数据类型中的元素放到一个流水线上

2.1是stream流在不同的数据类型中的用法

在单列集合中,直接调用stream方法

Arraylist<String> list=new ArrayList<>(); Collections.addAll(list,);//这里添加元素 list.stream();//这时就可以直接调用了

双列集合不能直接调用,需要转化成单列集合再调用

HashMap<String,Integer> hm = new HashMap(); //用put方法添加数据... //1.可以把key拿出来调用 hm.keySet().stream(); //2.或者把键拿出来也可以 hm.entrySet().stream();

数组需要用Arrays来调用stream流,再把数组传进去。基本数据类型和引用数据类型都可以

int[] arr1={1, 2, 3, 4}; Arrays.stream(arr1); String[] arr={"a", "b", "c"}; Arrays.stream(arr2);

最后就是零散的数据,直接用Stream.of()方法就可以。

当然在这个方法中也可以传递数组,只不过数组必须是引用数据类型的。

Stream.of(1, 2, 3, 4); Stream.of("A", "B", "C");

2.2是Stream流的中间方法

filter方法,用来过滤对应的元素,在方法里要用匿名内部类或者lambda表达式。

这个代码就是筛选字符串中开头为“张”的元素,方法返回值为Boolean类型

list.stream().filter(new Predicate<String>() { @Override public boolean test(String s) { //如果返回值为true,表示当前值留下 //如果返回值为false,表示当前数据舍弃 return s.startsWith("张"); } }).forEach(s-> System.out.println(s));

limit方法,获取前几个元素

skip方法,跳过前几个元素

list.stream().limit(3); list.stream().skip(2);

distinct方法,剔除重复的元素,因为底层是HashSet,方法需要重写hashCode和equals方法

concat方法,需要由Stream调用,用来合并两个流,需要数据类型一致

map方法,用来转换流里的数据类型,同样在方法中需要使用匿名内部类,Function方法的两个参数,第一个表示原本的数据类型,第二个表示转换城的数据类型,最后方法返回转换之后的数据。

2.3Stream流的终结方法

主要有三个,forEach(),返回值为void,方法体内采用匿名内部类或lambda表达式

list.stream().forEach(new Consumer<String>(){ @Override public void accept(String s){ System.out.println(s); } }); //lambda表达式 list.stream().forEach(s->System.out.println(s));

count()统计流中数据个数,返回值为long

toArray()收集流中的数据放到数组中,方法体内依旧采用匿名内部类或lambda表达式

String[] arr = list1.stream().toArray(new IntFunction<String[]>() { //value表示流中的个数,因此返回值为你规定的数据类型(String)的数组 @Override public String[] apply(int value) { return new String[value]; } });

2.4Stream流的收集方法

未完待续。。。今天脑子不够用了

http://www.jsqmd.com/news/894811/

相关文章:

  • 2026年质量好的滚丝机/进口滚丝机/东莞滚丝机品牌厂家推荐 - 行业平台推荐
  • 不掉卡、不宕机:主流 GPU 租用平台稳定性对比
  • 2026年4月热门的摇摆筛源头厂家推荐分析,无尘投料站/真空上料机/混合机/摇摆筛/不锈钢筛网,摇摆筛厂商推荐 - 品牌推荐师
  • 从功能、体验出发,深度解析主流 SaaS 建站平台优劣
  • 主动学习数据集划分
  • 大模型面试题,终于有LeetCode版了
  • 解决本地AI智能体遗忘问题:从上下文管理到向量记忆的完整方案
  • 2026年质量好的儿童护眼落地大路灯/钢琴大路灯/客厅护眼大路灯/婴幼儿阅读大路灯深度厂家推荐 - 品牌宣传支持者
  • Vibe Coding实战:话术长短无关效率,工程规范才是落地核心
  • 【高录用|线上召开|国家级人才主讲】2026年航空航天与智能制造国际学术会议(ICoAIM 2026)
  • 移动开发十年变革:从原生到跨端,开发者能力模型重塑与实战指南
  • AI Agent+MES融合实施手册(含OPC UA协议级对接checklist与异常代码速查表)
  • 2026年热门的苏州低温蒸发装置/低温蒸发浓缩装置优质公司推荐 - 行业平台推荐
  • Unity Recorder保姆级教程:从Timeline录制到独立窗口录屏,一次搞定所有格式
  • 基于贝叶斯Tucker分解的无监督特征选择:原理、实现与应用
  • 基于VoIPBin与AI构建智能IVR系统:从架构设计到工程实践
  • 从《最后生还者Online》取消看游戏开发项目管理与技术决策
  • 云知声U2即将发布:小参数大能量,能否填平估值差?
  • 2026年千亿「孤独经济」背后,情感陪伴平台正在改变什么?
  • 2026年口碑好的喷雾加湿设备/喷雾除尘设备/景观喷雾机/佛山喷雾机长期合作厂家推荐 - 品牌宣传支持者
  • LinkSwift:5分钟掌握八大网盘直链下载的终极解决方案
  • 30+北漂程序员,2个月零基础转行大模型,程序员如何抓住AI风口
  • 从X11到Wayland:一个Linux桌面开发者的迁移实战与避坑指南
  • 2026年热门的露台专用晾衣杆/晾衣杆/江西壁挂式晾衣杆精选厂家推荐 - 行业平台推荐
  • 基于Twilio+Deepgram+Groq构建企业级AI语音座席实战指南
  • 解决 TensorBoard 启动报错:ModuleNotFoundError: No module named ‘pkg_resources‘
  • AI绘图进化:从炫酷到实用
  • 大模型PII保护实战:5种方法109次测试,量化隐私与性能的权衡
  • 2026年靠谱的自动化精密工业设备零部件/精密工业设备零部件公司哪家好 - 行业平台推荐
  • 【限时解密】Lovable上线前72小时压测报告原文:千万级并发心跳包下的WebSocket集群熔断策略与自动降级清单