Java自带类库使用
1、List集合拼接成以逗号分割的字符串
private static void test1() {
// 如何把list集合拼接成以逗号分割的字符串 a,b,c
List<String> list = Arrays.asList("a", "b", "c");
// 第一种方法,用Stream流
String join = list.stream().collect(Collectors.joining(","));
System.out.println(join);
// 第二种方法,其实String也有join方法可以实现这个功能
String join1 = String.join(",", list);
System.out.println(join1);
}
// 结果
a,b,c
a,b,c
2、比较两个字符串是否相等,忽略大小写
private static void test2(String stringA, String stringB) {
if (stringA.equalsIgnoreCase(stringB)) {
System.out.println("相等");
}
}
3、比较两个对象是否相等
private static void test3(Object objA, Object objB) {
boolean equals = Objects.equals(objA, objB);
if (equals) {
System.out.println("相等");
}else {
System.out.println("不相等");
}
}
// 源码
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
4、两个List集合取交集
private static void test4() {
// 第一个集合
ArrayList<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
list1.add("c");
// 第二个集合
ArrayList<String> list2 = new ArrayList<>();
list2.add("a");
list2.add("b");
list2.add("d");
list1.retainAll(list2);
System.out.println(list1); // 结果 [a, b]
}
// retainAll() 源码
public boolean retainAll(Collection<?> c) {
Objects.requireNonNull(c);
return batchRemove(c, true);
}
private boolean batchRemove(Collection<?> c, boolean complement) {
final Object[] elementData = this.elementData;
int r = 0, w = 0;
boolean modified = false;
try {
for (; r < size; r++)
if (c.contains(elementData[r]) == complement)
elementData[w++] = elementData[r];
} finally {
// Preserve behavioral compatibility with AbstractCollection,
// even if c.contains() throws.
if (r != size) {
System.arraycopy(elementData, r,
elementData, w,
size - r);
w += size - r;
}
if (w != size) {
// clear to let GC do its work
for (int i = w; i < size; i++)
elementData[i] = null;
modCount += size - w;
size = w;
modified = true;
}
}
return modified;
}
本文来自博客园,作者:CoderTL,转载请注明原文链接:https://www.cnblogs.com/codertl/p/15327944.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix