Set中存放的是没有重复的数据,下说记录一下使用中的小细节。
1.HashSet
区分大小写:
1 2 3 4 5 | Set<String> set1 = new HashSet<String>(); Collections.addAll(set1, "A,B,C,D,E,F,G,a,b,c" .split( "," )); System.out.println(set1); System.out.println(set1.contains( "F" )); System.out.println(set1.contains( "f" )); |
输出:
[A, a, B, b, C, c, D, E, F, G]
true
false
BigDecimal比较
1 2 3 4 5 6 | Set<BigDecimal> set2 = new HashSet<BigDecimal>(); BigDecimal num1 = new BigDecimal( "1.0" ); BigDecimal num2 = new BigDecimal( "1.00" ); set2.add(num1); set2.add(num2); System.out.println(set2); |
输出:
[1.0, 1.00]
2.TreeSet
区分大小写:
1 2 3 | Set<String> treeSet = new TreeSet<String>(); Collections.addAll(treeSet, "A,a,B,b,C,c,D,E,F,G,d,e,f,g,h,i" .split( "," )); System.out.println(treeSet); |
输出:
[A, B, C, D, E, F, G, a, b, c, d, e, f, g, h, i]
如果要不区分大小写,加个参数:
1 2 3 | Set<String> treeSet1 = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER); Collections.addAll(treeSet1, "A,a,B,b,C,c,D,E,F,G,d,e,f,g,h,i" .split( "," )); System.out.println(treeSet1); |
输出:
[A, B, C, D, E, F, G, h, i]
BigDecimal的比较
1 2 3 4 | Set<BigDecimal> treeSet2 = new TreeSet<BigDecimal>(); treeSet2.add(num1); treeSet2.add(num2); System.out.println(treeSet2); |
输出:
[1.0]
为什么HashSet中加入BigDecimal与TreeSet中加入BigDecimal结算会不一样,这是因为HashSet调用的是equals方法,而Treeset调用的是compareTo方法。他们的实现是不一样的。
分类:
JAVA
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
2016-08-06 IOS从一个APP跳到另一个APP