不定时更新Java代码。
StreamUtils
package com.itjing.utils;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
/**
* List分页工具类
*
* @author lijing
* @date 2023-05-27
*/
@Component
public class StreamUtils<T> {
/**
* stream内存分页公用方法(返回传入的List)
*
* @param t T
* @param pageNum 当前页
* @param pageSize 每页总条数
* @return List<T>
**/
public List<T> pageSkipLimit(List<T> t, Integer pageNum, Integer pageSize) {
return t.stream().skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
}
/**
* 获取分页后的pageInfo(设置了vos,总条数)
*
* @param finalVos 需要分页的vos
* @param pageNum 当前页
* @param pageSize 每页条数
* @see com.github.pagehelper.PageInfo
*/
public PageInfo<T> getPageInfo(List<T> finalVos, Integer pageNum, Integer pageSize) {
PageInfo<T> pageInfo = new PageInfo<>();
pageInfo.setTotal(finalVos.size());
// 手动分页:finalVos
List<T> pageVos = this.pageSkipLimit(finalVos, pageNum, pageSize);
pageInfo.setList(pageVos);
return pageInfo;
}
}
逗号分隔的字符串和List互转
将逗号分隔的字符串转换为List
// 字符型
String str = "a,b,c";
List<String> strList = Arrays.asList(str.split(","));
System.out.println(strList); // [a, b, c]
// 数字型
String ids = "1,2,3,4,5,6";
List<Long> idList = Arrays.stream(ids.split(",")).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());
System.out.println(Arrays.toString(idList.toArray())); // [1, 2, 3, 4, 5, 6]
将List转换为逗号分隔的字符串
List<Integer> numList = Lists.newArrayList(1, 2, 3, 4, 5, 6);
String numStr = Joiner.on(",").join(numList);
System.out.println(numStr); // 1,2,3,4,5,6
// 1、利用Guava的Joiner
List<String> list = Lists.newArrayList("a", "b", "c");
String str1 = Joiner.on(",").join(list);
System.out.println(str1); // a,b,c
// 2、利用Apache Commons的StringUtils
String str2 = org.apache.commons.lang3.StringUtils.join(list.toArray(), ",");
System.out.println(str2); // a,b,c
// 3、java8
String str3 = list.stream().collect(Collectors.joining(","));
System.out.println(str3); // a,b,c
// 4、原生
String str4 = String.join(",", list);
System.out.println(str4); // a,b,c
将List对象转换为逗号分隔的字符串
String names = this.list.stream().map(User::getName).collect(Collectors.joining(",")); // a,b,c
或
StringJoiner sj = new StringJoiner(",", "[", "]");
this.list.forEach(item -> sj.add(item.getName()));
System.out.println(sj); // [a,b,c]
评论区