博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 集合框架 常用操作
阅读量:2391 次
发布时间:2019-05-10

本文共 1468 字,大约阅读时间需要 4 分钟。

stream ,filter 等功能代替for循环

定义一个对象

public Class Person{    private Long id;    private String userName;    // ... 省略get和set方法  }

在List中,查找userName为”alex”的对象alex。

  • 查找集合中的第一个对象。
Optional
firstPerson= AList.stream() .filter(a -> "alex".equals(a.getUserName())) .findFirst();

关于Optional,java API中给了解释: A container object which may or may not contain a non-null value. If a value is present, isPresent() will return true and get() will return the value.

if (firstPerson.isPresent()) {     Person person = firstPerson.get();   //这样子就取到了这个对象}else {   //没有查到的逻辑}
  • 如果想返回集合呢。可是使用这个
List
firstA= AList.stream() .filter(a -> "alex".equals(a.getUserName())) .collect(Collectors.toList());
  • 抽取对象中所有的id的集合
List
idList = AList.stream .map(Person::getId) .collect(Collectors.toList());

迭代器

迭代的时候不能改变集合的结构,例如不能调用add(),remove()

List和数组转换

转换数组为List

1.使用Stream中的Collector收集器,代码:

String[] arrays = new String[]{
"a", "b", "c"}; List
listStrings = Stream.of(arrays).collector(Collectors.toList());
  1. 使用java.util.Arrays工具类中的asList()方法(这个不是Java8中新增的内容):
String[] arrays = new String[]{
"a", "b", "c"}; List
listStrings = Arrays.asList(arrays);

转换List为数组

1. 使用Stream:

[java] view plain copyString[] ss = listStrings.stream().toArray(String[]::new);
  1. 使用List中的toArray()方法
String[] sss = listStrings.toArray(new String[listStrings.size()]);

转载地址:http://deqab.baihongyu.com/

你可能感兴趣的文章
iphone for PPT遥控器 MyPoint PowerPoint Remote
查看>>
ZPanel 10.0.0.2 Remote Command Execution
查看>>
Using Mimikatz Alpha or Getting Clear Text Passwords with a Microsoft Tool
查看>>
宁皓网bootstrap
查看>>
Hive作业优化总结(来自一号店)
查看>>
九.redis学习笔记之虚拟内存
查看>>
java ireport jasperreport 配套使用(三) 使用Parameters
查看>>
关于二维数组和指向指针的指针
查看>>
http get post head
查看>>
关于C语言中函数调用和参数传递机制的探讨
查看>>
堆栈溢出从入门到提高
查看>>
Linux环境进程间通信 共享内存(下)
查看>>
Linux环境进程间通信 共享内存(上)
查看>>
Linux select函数(二)
查看>>
Yacc使用
查看>>
C语言里面的嵌套声明的读法
查看>>
kmalloc详解
查看>>
linux下gdb单步调试(中)
查看>>
写一个块设备驱动-第9章
查看>>
JDBC数据库开发技术
查看>>