1. Collections
package com.czxy.d4_collections;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* @author 桐叔
* @email liangtong@itcast.cn
* @description
*/
public class TestCollections {
public static void main(String[] args) {
//准备List数据
List<String> list = new ArrayList<>();
list.add("a");
//批量添加
Collections.addAll(list,"b","c","d");
//洗牌
Collections.shuffle(list);
//排序
/*
Collections.sort(list, new Comparator<String>(){
@Override
public int compare(String o1, String o2) {
//return o1.compareTo(o2); //升序
return o2.compareTo(o1); //降序
}
} );
*/
Collections.sort(list, (o1,o2) -> o2.compareTo(o1)); //降序
//不允许修改
List<String> newList = Collections.unmodifiableList(list);
//list.add("x"); //允许
//newList.add("y"); //不能修改,抛异常
System.out.println(list);
System.out.println(newList);
}
}
2. Stream
JDK8的一个特性,是专业用于对集合
或者数组
进行便捷操作的。
package com.czxy.d5_stream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author 桐叔
* @email liangtong@itcast.cn
* @description
*/
public class TestStream {
public static void main(String[] args) {
//准备数据
List<String> list = new ArrayList<>();
Collections.addAll(list,"jack","rose","tom","松松","小李","涛儿","张三");
//过滤 filter
list.stream().filter(s->{
//过滤的依据
return s.contains("o");
}).forEach(System.out::println);
System.out.println("-----------");
//排序
list.stream().sorted((o1, o2) -> o2.compareTo(o1)).forEach(System.out::println);
System.out.println("@@@@@@@@");
//逻辑分页
list.stream().skip(0).limit(2).forEach(System.out::println);
System.out.println("---");
list.stream().skip(2).limit(2).forEach(System.out::println);
System.out.println("---");
list.stream().skip(4).limit(2).forEach(System.out::println);
System.out.println("---");
list.stream().skip(6).limit(2).forEach(System.out::println);
//模拟分页
int pageSize = 2; //每页多少个
for (int page = 1; page <= 4 ; page++) { //第几页
int startIndex = (page-1) * pageSize; //开始索引
list.stream().skip(startIndex).limit(pageSize).forEach(System.out::println);
System.out.println("$$$$");
}
//映射map(增强:对原有数据进行增强)
// 案例:消息字幕变大写
list.stream().map(s -> s.toUpperCase()).forEach(System.out::println);
// 案例2:将用户名封装Student
list.stream().map(s -> new Student(s)).forEach(System.out::println);
//打印
/*
list.stream().forEach(s->{
System.out.println(s);
});
*/
//list.stream().forEach(System.out::println);
//将stream流处理后的数据转换list
List<String> strList = list.stream().map(s -> s.toUpperCase()).collect(Collectors.toList());
System.out.println(strList);
List<Student> studentList = list.stream().map(s -> new Student(s)).collect(Collectors.toList());
System.out.println(studentList);
}
}
3. File
package com.czxy.d6_file;
import java.io.File;
import java.io.IOException;
/**
* @author 桐叔
* @email liangtong@itcast.cn
* @description
*/
public class TestFile6_demo {
public static void main(String[] args) throws IOException {
//确定文件的路径,但所在的目录不存在
String parent = "G:\\czxy_2021_56_全栈\\day5030_1010-JavaSE-常用API\\test";
// 确定文件位置
File file = new File(parent, "x/y/z/abc.txt");
// 判断文件的目录是否存在,如果不存在,创建目录
if(!file.getParentFile().exists()) {
file.getParentFile().mkdirs();
}
// 保证目录存在的基础上,创建文件
boolean result = file.createNewFile();
System.out.println("创建成功:" + result);
}
}
4. IO 操作
- 读操作
package com.czxy.d7_io;
import java.io.*;
/**
* @author 桐叔
* @email liangtong@itcast.cn
* @description
*/
public class TestInput {
public static void main(String[] args) throws IOException {
//读操作
//0 准备文件
File file = new File("G:\\czxy_2021_56_全栈\\day5030_1010-JavaSE-常用API\\test\\b.txt");
//1 创建输入流
InputStream is = new FileInputStream(file);
//2 循环读取所有内容
int b = -1;
while( (b = is.read()) != -1) {
System.out.print((char)b);
}
//4 关闭流
is.close();
}
}
-
写操作
package com.czxy.d7_io;
import java.io.*;
/**
* @author 桐叔
* @email liangtong@itcast.cn
* @description
*/
public class TestOutput {
public static void main(String[] args) throws IOException {
//写操作
//0 准备文件
File file = new File("G:\\czxy_2021_56_全栈\\day5030_1010-JavaSE-常用API\\test\\b.txt");
//1 创建输出对象 , append是否追加 (true追加,false覆盖)
OutputStream os = new FileOutputStream(file, true);
//2 写内容
os.write('x');
os.write(97 + 25);
//3 关闭流
os.close();
System.out.println("写入成功");
}
}