相关文章推荐
俊逸的冲锋衣  ·  verilog中,if ...·  4 月前    · 
快乐的香菜  ·  Spring Data JPA ...·  1 年前    · 
飘逸的登山鞋  ·  创建简单Intellij java ...·  1 年前    · 

一张数据表user包括id,name,age,gender。

用List<User>装该数据表的全部数据,在这里我们假如直接获得这部分数据:

List<User> users = getUsers();

现在需要全部的name数据,我们可以:

List<String> names = users.stream().map(User::getName()).collect(Collectors.toList());

stream:stream不是一种数据结构,它只是某种数据源的一个视图,数据源可以是一个数组,Java容器或I/O channel等。对stream进行修改不会修改任何一个背后的数据源。

map:接收一个函数作为参数,该函数被应用到每个元素上,并将其映射成一个新的元素。

collect:属于terminal operation,必须加在后面,否则会报错。

Collectors.toList()用来结束Stream流。

List<需要获得集合的类型> list = 已获得的集合的对象.stream().map(已获得的集合对应的类型::需要获得集合对应的内容的Getter方法).collect(Collectors.toList());

文章目录Lsit 数据 复制 问题1.1copy问题1.2怎么高效的 复制 1.3 回答 Lsit 数据 复制 问题 这是由一道开放式面试题引发的文章,题目:加入内存足够大, 一个 集合 有100万条数据,怎么高效的把 集合 的数据 复制 到另外 一个 集合 1.1copy问题 java 复制 分为浅拷贝和深拷贝 如果考察浅拷贝:直接使用clone方法 System.out.println("测试开始时");...
Java 开发 ,有时候我们为了源 List 集合 的数据不被修改,如果采用类似“new_ list = old_ list ”这种形式来 复制 克隆 一个 新的 List 集合 是绝对不行的,所以我们得采用下面的三种方法来 复制 一个 新的 List 集合 Java 克隆 复制 Array List List 集合 的方法一: Java 克隆 复制 一个 List 可以在创建 List 对象时通过将源 List 集合 以参数的形式传入即可, 代码 如下:import java .util.Array List ; import java .util.Arrays; importjav
List <UserDTO> dto List = new Array List <>(); for (User user : list ) { UserDTO d = new UserDTO(); BeanUtils.copyProperties(user, d); dto List .add(d); 使用 java 8的st
Java 一个 集合 数据 复制 或赋值到另 一个 集合 数据 添加到 一个 集合 public static void main(String[] args)throws Exception { List <String> list 1 = new Array List <String>(); list 1.add("1"); list 1.add("2"); list 1.add("3"); list 1.add("5")
现在我们的开发是绝大 部分 使用的jdk至少也是1.8版本的,这个版本 开始 增加了很多的特性,今天也只是记录其 的一小 部分 ,只是 一个 小疑惑。 在开发过程 我们经常会遇到需要从 一个 List 取出 一个 属性的 List 集合 比如 id的 集合 所以就会用到JDK8 的方法, 有个疑问,当我们取值的时候 是否会碰到空指针呢 ? 答案是:不会 但是也会有另外 一个 问题 public static void main(String[] args) { User user1 = new User(); 3. 使用 Java 的Collections.sort()方法对新的 List 集合 按照日期进行排序。 4. 使用 Java 的IO库将排序后的数据写入到 一个 新的log文件 。 下面是 代码 示例: ``` java import java .io.*; import java .util.*; public class LogMerger { public static void main(String[] args) throws IOException { // 读取两个log文件 List <String> log1 = readFile("log1.txt"); List <String> log2 = readFile("log2.txt"); // 合并两个 List 集合 List <String> mergedLog = new Array List <>(log1); mergedLog.addAll(log2); // 对新的 List 集合 按照日期排序 Collections.sort(mergedLog, new Comparator<String>() { @Override public int compare(String o1, String o2) { String[] fields1 = o1.split("\\s"); String[] fields2 = o2.split("\\s"); return fields1[0].compareTo(fields2[0]); // 写入到新的log文件 writeFile("mergedLog.txt", mergedLog); // 读取文件 内容 List 集合 private static List <String> readFile(String filename) throws IOException { List <String> lines = new Array List <>(); BufferedReader reader = new BufferedReader(new FileReader(filename)); String line; while ((line = reader.readLine()) != null) { lines.add(line); reader.close(); return lines; // 将 List 集合 内容 写入到文件 private static void writeFile(String filename, List <String> lines) throws IOException { BufferedWriter writer = new BufferedWriter(new FileWriter(filename)); for (String line : lines) { writer.write(line); writer.newLine(); writer.close(); 在这个示例 ,假设log文件的每行数据格式为"日期 日志 内容 ",如"2022-02-26 [INFO] something happened"。在比较日期时,我们只比较每行数据的第 一个 字段(即日期 部分 )。如果日期 部分 相同,则按照后面的 内容 排序。如果需要更严格的排序,可以根据实际需求修改比较逻辑。