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