1.字符串拼接【,】 public static void main(String[] args) { List<String> list = Arrays.asList("1", "2", "3", "4"); String pj = list.stream().distinct().collect(joining(",")); System.out.println(pj); }
结果:1,2,3,4
2.结果集进行排序分页处理
@Data static class Student{ private String name; private Integer age; private LocalDate birthDay; } public static void main(String[] args) { List<Student> result = new ArrayList<>(); Student student = new Student(); student.setAge(18); student.setName("张三"); student.setBirthDay(LocalDate.parse("2016-12-12")); result.add(student); Student student0 = new Student(); student0.setAge(17); student0.setName("李四"); student0.setBirthDay(LocalDate.parse("2016-11-12")); result.add(student0); // 封装数据 List<Student> newResult = result.stream() // .distinct() // .map(e -> { // Student student1 = new Student(); // student.setAge(18); // student.setName("张三"); // student.setBirthDay(LocalDate.parse("2016-12-12")); // return student1; // }) // 先将集合赋值完再进行排序,null值的放到后面,避免空指针 .sorted(Comparator.nullsLast(Comparator.comparing(Student::getBirthDay, Comparator.nullsLast(LocalDate::compareTo)).reversed())) //出生日期排序 .reversed() 倒序 // 分页处理 .skip((pageIndex - 1) * pageSize).limit(pageSize) .skip(0).limit(10) .collect(Collectors.toList()); System.out.println(newResult); }
3.使用Stream对象求交集
将集合转换为Stream对象
Stream<Integer> stream1 = list1.stream();
Stream<Integer> stream2 = list2.stream();
使用Stream对象求交集
List<Integer> intersection = stream1.filter(list2::contains).collect(Collectors.toList());
4.oracle查看锁表
SELECT
sess.sid,
sess.serial#,
lo.oracle_username, -- 登陆账号名称
lo.os_user_name, -- 登录电脑名称
ao.object_name, -- 被锁表名
lo.locked_mode -- 死锁级别
FROM
v$locked_object lo,
dba_objects ao,
v$session sess
WHERE
ao.object_id = lo.object_id
AND lo.session_id = sess.sid;
死锁级别:
0:none
1:null 空
2:Row-S 行共享(RS):共享表锁
3:Row-X 行专用(RX):用于行的修改
4:Share 共享锁(S):阻止其他DML操作
5:S/Row-X 共享行专用(SRX):阻止其他事务操作
6:exclusive 专用(X):独立访问使用
————————————————————————————————
解锁方法
alter system kill session '68,51'; -- 分别为SID和SERIAL#号
查看引起锁表的sql语句
SELECT
A.USERNAME,
A.MACHINE,
A.PROGRAM,
A.SID,
A.SERIAL#,
A.STATUS,
C.PIECE,
C.SQL_TEXT
FROM
V$SESSION A,
V$SQLTEXT C
WHERE
A.SID IN ( SELECT DISTINCT T2.SID FROM V$LOCKED_OBJECT T1, V$SESSION T2 WHERE T1.SESSION_ID = T2.SID )
AND A.SQL_ADDRESS = C.ADDRESS ( + )
ORDER BY
C.PIECE;
5.BigDecimal 数值处理
public class test {
/*关于数字格式化:java.text.DecimalFormat;
数字格式元素:
# 任意数字
, 千分位
. 小数点
0 不够补0
*/
public static void main(String[] args) {
//1.创建数字格式化对象
//需求:加入千分位.
DecimalFormat df = new DecimalFormat("###,###");
//开始格式化
System.out.println(df.format(1234567)); //"1,234,567"
//需求:加入千分位,保留2位小数
DecimalFormat df1 = new DecimalFormat("###,###.##");
System.out.println(df1.format(1234567.123)); //"1,234,567.12"
//需求:加入千分位,保留4位小数,并且不够补0
DecimalFormat df2 = new DecimalFormat("###,###.0000");
System.out.println(df2.format(1234567.123));//"1,234,567.1230"
//创建大数据.
BigDecimal v1 = new BigDecimal(10);
BigDecimal v2 = new BigDecimal(20);
//做加法运算
//v1 + v2; //错误:两个引用类型不能做加法运算.
//必须调用方法执行加法运算.
BigDecimal v3 = v1.add(v2);
System.out.println(v3); //30
}
}
5.返回不带.0的BigDecimal类型的方法小结
public static void main(String[] args) { // 返回不带.0的BigDecimal System.out.println(new BigDecimal(BigDecimal.valueOf(1000).add(BigDecimal.valueOf(0.0)).stripTrailingZeros().toPlainString())); }