Java常识记录
常用各类数据分割转换的方法
1、将String 类型数据转换成List<String>
代码:
String yearAndMonths = "2022年4月,2022年3月,2021年9月,2021年6月,2021年5月"; List<String> yearAndMonthList = Arrays.asList(yearAndMonths.split(","));
1-1、反向将List<String> 类型数据转换成String(反向操作)
代码:
List<String> dataList = Arrays.asList("2022年4月,2022年3月,2021年9月,2021年6月,2021年5月".split(",")); String resultData = String.join(",",dataList)
2、将List<String> data1 和 List<String> data2 两个数据进行排重合并
代码:
String dataFirsts = "2022年4月,2022年3月,2021年9月,2021年6月,2021年5月"; String dataSeconds = "2022年4月,2022年1月,2021年7月"; List<String> dataFirst = Arrays.asList(dataFirsts.split(",")); List<String> dataSecond = Arrays.asList(dataSeconds.split(",")); List<String> resultData = Stream.of(dataFirst,dataSecond).flatMap(Collection::stream).distinct().collect(Collectors.toList());
3、将List<String> 类型的数据按照自然排序,降序排列
代码:
List<String> DataList = Arrays.asList("2022年4月,2022年3月,2021年9月,2021年6月,2021年5月".split(",")); List<String> resultData = DataList.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
4、将String 类型数据转换成List<Object> 数据
代码:
String listObjects = "[\n" +
"{\n" +
"\"cId\":\"1511893656624275457\",\n" +
"\"users\":\"B\"\n" +
"},\n" +
"{\n" +
"\"cId\":\"1511957031781666818\",\n" +
"\"users\":\"C\"\n" +
"}\n" +
"]"
List<UserObject> result = JSONObject.parseArray(listObjects,UserObject.class);
5、List<Object> 数据中是否包含某一个Object
代码(一):
List<String> DataList = Arrays.asList("2022年4月,2022年3月,2021年9月,2021年6月,2021年5月".split(",")); boolean b = DataList .stream().anyMatch(m -> m.equals("2022年4月"))
代码(二):
List<String> DataList = Arrays.asList("2022年4月,2022年3月,2021年9月,2021年6月,2021年5月".split(",")); boolean b = DataList .stream().filter(m -> m.equals("2022年4月")).findAny().isPresent();
6、QueryWrapper的方法图
方法名
|
说明
|
使用
|
---|---|---|
allEq(Map<R, V> params)
|
全部 =(或个别 isNull)
|
allEq(params,true)
|
eq
|
等于=
|
eq(“real_name”,“王昭君”)
|
ne
|
不等于<>
|
ne(“nick_name”,“空想 4”)
|
gt
|
大于>
|
gt(“age”,21)
|
ge
|
大于等于>=
|
ge(“age”,22)
|
lt
|
小于<
|
lt(“age”,22)
|
le
|
小于等于<=
|
le(“age”,21")
|
between
|
cloum between ? and ?
|
between(“age”,0,21)
|
notBetween
|
cloum between ? and ?
|
notBetween(“age”,0,21)
|
like
|
cloum like ‘% 王 %’
|
like(“real_name”,“王”)
|
notLike
|
not like ‘% 王 %’
|
notLike(“real_name”,“王”)
|
likeLeft
|
like ‘% 王’
|
likeLeft(“real_name”,“昭”)
|
likeRight
|
like ‘王 %’
|
likeRight(“real_name”,“昭”)
|
isNull
|
is null
|
isNull(“gender”)
|
isNotNull
|
is not null
|
isNotNull(“gender”)
|
in
|
in (1,2,3)
|
in(“nick_name”,lists)
|
notIn
|
age not in (1,2,3)
|
notIn(“nick_name”,lists)
|
inSql
|
age in (1,2,3,4,5,6)
|
inSql(“nick_name”,"‘空想 4’,‘空想 5’,‘空想 6’")
|
notInSql
|
age not in (1,2,3,4,5,6)
|
notInSql(“nick_name”,"‘空想 4’,‘空想 5’,‘空想 6’")
|
groupBy
|
group by id,name
|
groupBy(“nick_name”,“age”)
|
orderByAsc
|
order by id ASC,name ASC
|
orderByAsc(“nick_name”,“age”)
|
orderByDesc
|
order by id DESC,name DESC
|
orderByDesc(“age”)
|
orderBy
|
order by id ASC,name ASC
|
orderBy(true,true,“age”)
|
having
|
having sum(age) > 10
|
having(“sum(age) > 10”)
|
or
|
id = 1 or name = ‘老王’
|
eq(“nick_name”,“空想 4”).or(i->i.eq(“age”,21) eq(“nick_name”,“空想 4”).or().eq(“nick_name”,“空想 5”)
|
and
|
and (name = ‘李白’ and status <> ‘活着’)
|
and(i->i.eq(“age”,21))
|
nested
|
(name = ‘李白’ and status <> ‘活着’)
|
nested(i->i.eq(“age”,21).eq(“nick_name”,“空想 4”))
|
apply
|
拼接sql
|
apply(“nick_name = ‘空想 4’”)
|
last
|
最后添加多个以最后的为准,有 sql 注入风险
|
last(“limit 1”)
特殊用到:随机获取3条数据方法:.last(" order by rand() limit 3")
|
exists
|
拼接 EXISTS (sql 语句)
|
exists(“select id from table where age = 1”)
|
notExists
|
拼接 NOT EXISTS (sql 语句)
|
notExists(“select id from table where age = 1”)
|
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端