一:数字、字母,汉语拼音进行排序
关键点:利用Collator 类执行区分语言环境的 String 比较。使用此类可为自然语言文本构建搜索和排序例程。
代码示例如下:
public static void sort() {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("李四");
list.add("段十三");
list.add("aaa");
list.add("ddd");
list.add("yyyy");
list.add("23456");
Comparator<String> comparator = (o1, o2) -> {
Collator collator = Collator.getInstance();
return collator.getCollationKey(o1).compareTo(collator.getCollationKey(o2));
};
Collections.sort(list,comparator); // 使用comparator规则进行排序
System.out.println(list);
}
输出结果如下:
[23456, aaa, ddd, yyyy, 段十三, 李四, 张三]
二: 分页查询
1.使用原有的limit进行分页查询语句 其中start是页码,pageSize是每页显示的条数。
select * from table limit (start-1)*pageSize,pageSize;
2.使用Mybatis分页插件PageHelper进行分页
引入jar包
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
示例代码:
public static PageInfo<String> findAll(Integer no, Integer size) {
PageHelper.clearPage(); // 清理缓存
int pageNo = no == null ? 1 : no; //当前页
int pageSize = size == null ? 10 : size; //显示多少行
PageHelper.startPage(pageNo, pageSize);
List<String> domes = findList();
PageInfo<String> pageInfo = new PageInfo<>(domes);
return pageInfo;
}
pageInfo数据结构如下:
{
"endRow": 3,
"firstPage": 1,
"hasNextPage": false,
"hasPreviousPage": false,
"isFirstPage": true,
"isLastPage": true,
"lastPage": 1,
"list": [
"a",
"b",
"c",
"f"
],
"navigateFirstPage": 1,
"navigateLastPage": 1,
"navigatePages": 8,
"navigatepageNums": [
1
],
"nextPage": 0,
"pageNum": 1,
"pageSize": 4,
"pages": 1,
"prePage": 0,
"size": 4,
"startRow": 0,
"total": 4
}
网友评论