欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > Java基础 Day21

Java基础 Day21

2025/11/24 21:22:43 来源:https://blog.csdn.net/luyy86/article/details/148240495  浏览:    关键词:Java基础 Day21

一、Stream 流

思想:流水线式思想

1、获取流对象(将数据放到流中)

(1)集合获取 Stream 流对象

使用Collection接口的默认方法

default Stream<E> stream() 

获取当前集合对象的 Stream 流(单列集合)

map.entrySet().stream()

map集合获取流对象,拿到单列集合后间接获取

(2)数组获取流对象

使用 Arrays 数组工具类中的静态方法

static <T> Stream<T> stream​(T[ ] array) 

将传入的数组封装到 Stream 流对象中

(3)零散数据获取流对象

使用 Stream 类中的静态方法 of()

static <T> Stream<T> of​(T... values) 

把一堆零散的数据封装到 Stream 流对象中

2、中间方法

Stream<T> filter(Predicate<? super T> predicate)

用于对流中的数据进行过滤

Stream<T> limit​(long maxSize)

获取前几个元素

Stream<T> skip​(long n)

跳过前几个元素

Stream<T> distinct​()

去除流中重复的元素依赖 (hashCode 和 equals方法)

static <T> Stream<T> concat​(Stream a, Stream b)

合并a和b两个流为一个流

中间方法调用完成后返回新的 Stream 流可以继续使用,支持链式编程

如果流对象已经被消费过,就不允许再次使用了

3、终结方法

void forEach​(Consumer action)

对此流的每个元素执行遍历操作

long count​()

返回此流中的元素数

4、Stream 流的收集操作

把 Stream 流操作后的结果数据转回到集合

R collect​(Collector collector)

开始收集Stream流,指定收集器

Collectors 工具类提供了具体的收集方式

public static <T> Collector toList​()

把元素收集到List集合中

public static <T> Collector toSet​()

把元素收集到Set集合中

public static  Collector toMap​(Function keyMapper , Function valueMapper)

把元素收集到Map集合中

ArrayList<String> list = new ArrayList<String>();
list.add("Alice");
list.add("Bob");
list.add("Bobby");
list.add("Charlie");
list.stream().filter(s -> s.startsWith("Bob")).forEach(s->System.out.println(s));// 收集到 List集合
List<Integer> s1 = Stream.of(1, 2, 3).filter(s -> s % 2 == 1).collect(Collectors.toList());// 收集到 Map集合
Map<String,Integer> map = L2.stream().filter(new Predicate<String>() {@Overridepublic boolean test(String s) {return Integer.parseInt(s.split(",")[1]) >= 22;}
}).collect(Collectors.toMap(new Function<String, String>() {@Overridepublic String apply(String s) {return s.split(",")[0];}
}, new Function<String, Integer>() {@Overridepublic Integer apply(String s) {return Integer.parseInt(s.split(",")[1]);}
}));System.out.println(map);

 

二、File 类

File 类代表操作系统的文件对象(文件、文件夹)

1、构造方法

public File​(String pathname)

根据文件路径创建文件对象

public File​(String parent, String child)

根据父路径名字符串和子路径名字符串创建文件对象

public File​(File  parent, String child)

根据父路径对应文件对象和子路径名字符串创建文件对象

File 对象可以定位文件和文件夹

File 封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的

绝对路径: 从盘符根目录开始,一直到某个具体的文件或文件夹

相对路径: 相对于当前项目

2、判断和查询方法

public boolean isDirectory()

判断此路径名表示的File是否为文件夹

public boolean isFile()

判断此路径名表示的File是否为文件

public boolean exists()

判断此路径名表示的File是否存在

public long length()

返回文件的大小(字节数量),文件夹返回的是错的

public String getAbsolutePath()

返回文件的绝对路径

public String getPath()

返回定义文件时使用的路径

public String getName()

返回文件的名称,带后缀名

public long lastModified()

返回文件的最后修改时间(时间毫秒值)

3、创建和删除方法

public boolean createNewFile()

创建一个新的空的文件

public boolean mkdir()

只能创建一级文件夹

public boolean mkdirs()

可以创建多级文件夹

public boolean delete​()

删除由此抽象路径名表示的文件或空文件夹

delete方法不能删除非空文件夹

delete方法不走回收站

4、遍历方法

public File[] listFiles()

获取当前目录下所有的  “一级文件对象” 

返回 File 数组

当调用者File表示的路径不存在时,返回null

当调用者File表示的路径是文件时,返回null

当调用者File表示的路径是一个空文件夹时,返回一个长度为0的数组

当调用者File表示的路径是需要权限才能访问的文件夹时,返回null

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词