4
2
0
2

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;
}
posted @   CoderTL  阅读(82)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· 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
点击右上角即可分享
微信分享提示