package com.meloda.fast.util import java.util.stream.Collectors object ArrayUtils { @SafeVarargs fun asString(vararg array: T): String { if (array.isEmpty()) { return "" } val builder = StringBuilder(array.size * 12) builder.append(array[0]) for (i in 1 until array.size) { builder.append(',') builder.append(array[i]) } return builder.toString() } fun asString(array: IntArray): String { if (array.isEmpty()) { return "" } val builder = StringBuilder(array.size * 12) builder.append(array[0]) for (i in 1 until array.size) { builder.append(',') builder.append(array[i]) } return builder.toString() } fun asString(arrayList: ArrayList): String { return ArrayList().apply { arrayList.forEach { add(it.toString()) } }.stream().collect(Collectors.joining(",")) } fun asString(list: List): String = asString(list.asArrayList()) fun cut(arrayList: ArrayList, offset: Int, count: Int): ArrayList { if (arrayList.isEmpty()) return arrayListOf() var lastPosition = offset + count if (lastPosition > arrayList.size) lastPosition = arrayList.size return ArrayList(arrayList.subList(offset, lastPosition)) } fun ByteArray?.isNullOrEmpty() = this == null || this.isEmpty() fun List.asArrayList(): ArrayList { return ArrayList(this) } }