目录
一、Map
1、MapUtil.buildMap
MapUtil.buildMap(
"datas", MapUtil.buildMap("data", list, "pageNo", pageNo, "pageSize", pageSize));
2、HashMap.values
values() 方法可以与 for-each 循环一起使用,用来遍历迭代 HashMap 中的所有值。
// 创建一个 HashMap
HashMap<Integer, String> sites = new HashMap<>();
// 往 HashMap 添加一些元素
sites.put(1, "Google");
sites.put(2, "Runoob");
sites.put(3, "Taobao");
System.out.println("sites HashMap: " + sites);
// 访问 HashMap 中所有的 value
System.out.print("Values: ");
// values() 返回所有 value 的一个视图
// for-each 循环可以 从view中访问每一个value值
for(String value: sites.values()) {
// 输出每一个value
System.out.print(value + ", ");
}
3、HashMap.containsKey(key)
查看该HashMap中是否有Key的映射存在,有返回true,没有false
二、List
1、list.stream().filter
//单条件过滤
list.stream().filter(e -> e.contains("张")).forEach(System.out::println);
//多条件过滤
list.stream().filter(a->a.equals("赵八")).
filter(a->a.contains("赵")).forEach(System.out::println);
//获取前三个元素
list.stream().limit(3).forEach(System.out::println);
//跳过前三个元素
list.stream().skip(3).forEach(System.out::println);
//跳过前三个 获取前两个
list.stream().skip(3).limit(2).forEach(System.out::println);
//去重
list.stream().distinct().forEach(System.out::println);
三、StringBuilder
基础概念:
StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区。即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。
常用方法:
基础概念:
StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区。即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。StringBuilder会自动维护数组的扩容。
常用方法:public StringBuilder append(...)
:添加任意类型数据的字符串形式,并返回当前对象自身。拼接public String toString()
:将当前StringBuilder对象转换为String对象。
//创建对象
StringBuilder builder = new StringBuilder();
//public StringBuilder append(任意类型)
StringBuilder builder2 = builder.append("hello");
//对比一下
System.out.println("builder:"+builder);//builder:hello
System.out.println("builder2:"+builder2);//builder2:hello
System.out.println(builder == builder2); //true
// 可以添加 任何类型
builder.append("hello");
builder.append("world");
builder.append(true);
builder.append(100);
四、QueryBuilder
查询elasticsearch中存储的全部文档
1.matchAllQuery() 用来匹配全部文档
public class QueryTest {
public static void main(String[] args) {
//创建对象,设置集群名称和IP地址
ElasticsearchUtils es = new ElasticsearchUtils("im_shan",
"localhost");
String indexName = "school";//索引名称
String typeName = "student";//类型名称
//搜索全部文档
QueryBuilder queryBuilder = QueryBuilders.matchAllQuery();
SearchResponse searchResponse = es.searcher(indexName, typeName,
queryBuilder);
SearchHits hits = searchResponse.getHits();
SearchHit[] searchHits = hits.getHits();
int i = 0;
for (SearchHit searchHit : searchHits) {
String name = (String) searchHit.getSource().get("name");
String birth = (String) searchHit.getSource().get("birth");
String interest = (String) searchHit.getSource().get("interest");
System.out.println("-------------" + (++i) + "------------");
System.out.println(name);
System.out.println(birth);
System.out.println(interest);
}
}
}
2.matchQuery(String name,Object text)
matchQuery("filedname","value")匹配单个字段,匹配字段名为filedname,值为value的文档
//单个匹配,搜索name为jack的文档
QueryBuilder queryBuilder = QueryBuilders.matchQuery("name", "jack");
3.multiMatchQuery(Object text, String... fieldNames)
多个字段匹配某一个值
QueryBuilder queryBuilder = QueryBuilders.multiMatchQuery("music",
"name", "interest");//搜索name中或interest中包含有music的文档(必须与music一致)
4.wildcardQuery()模糊查询
WildcardQueryBuilder queryBuilder = QueryBuilders.wildcardQuery("name",
"*jack*");//搜索名字中含有jack文档(name中只要包含jack即可)
5.使用BoolQueryBuilder进行复合查询
使用must
//模糊查询
WildcardQueryBuilder queryBuilder1 = QueryBuilders.wildcardQuery(
"name", "*jack*");//搜索名字中含有jack的文档
WildcardQueryBuilder queryBuilder2 = QueryBuilders.wildcardQuery(
"interest", "*read*");//搜索interest中含有read的文档
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
//name中必须含有jack,interest中必须含有read,相当于and
boolQueryBuilder.must(queryBuilder1);
boolQueryBuilder.must(queryBuilder2);
五、StringUtils
isEmpty:判断是否为空
com. baomidou .mybatisplus.core.toolkit