package org.archstudio.sysutils;
public class ArrayUtils {
public static boolean equals(Object[] arr1, Object[] arr2) {
return java.util.Arrays.equals(arr1, arr2);
/*
* if(arr1.length != arr2.length){ return false; } for(int i = 0; i < arr1.length; i++){ if((arr1[i] == null) &&
* (arr2[i] == null)){ continue; } if((arr1[i] == null) || (arr2[i] == null)){ return false; }
* if(!arr1[i].equals(arr2[i])){ return false; } } return true;
*/
}
public static int arrayHashCode(Object[] arr) {
int hc = arr.length;
for (Object element : arr) {
if (element == null) {
hc ^= 0;
}
else {
hc ^= element.hashCode();
}
}
return hc;
}
public static String arrayToString(byte[] array) {
if (array == null) {
return "null";
}
StringBuffer sb = new StringBuffer();
sb.append("Array[elementType=\"");
sb.append("byte");
sb.append("\", length=");
sb.append(array.length);
sb.append("]{");
for (int i = 0; i < array.length; i++) {
sb.append(array[i]);
if (i != array.length - 1) {
sb.append(", ");
}
}
sb.append("}");
return sb.toString();
}
public static String arrayToString(int[] array) {
if (array == null) {
return "null";
}
StringBuffer sb = new StringBuffer();
sb.append("Array[elementType=\"");
sb.append("int");
sb.append("\", length=");
sb.append(array.length);
sb.append("]{");
for (int i = 0; i < array.length; i++) {
sb.append(array[i]);
if (i != array.length - 1) {
sb.append(", ");
}
}
sb.append("}");
return sb.toString();
}
public static String arrayToString(Object[] array) {
if (array == null) {
return "null";
}
Class<?> c = array.getClass();
Class<?> t = c.getComponentType();
boolean tIsArray = t.isArray();
StringBuffer sb = new StringBuffer();
sb.append("Array[elementType=\"");
sb.append(t.getName());
sb.append("\", length=");
sb.append(array.length);
sb.append("]{");
for (int i = 0; i < array.length; i++) {
if (tIsArray) {
sb.append(arrayToString((Object[]) array[i]));
}
else {
sb.append(array[i]);
}
if (i != array.length - 1) {
sb.append(", ");
}
}
sb.append("}");
return sb.toString();
}
/**
* @param array
* the array to join
* @param delimiter
* the string used to separate elements
* @return a string created by converting each element of the array to a string, separated by the given delimiter
*/
public static String join(Object[] array, String delimiter) {
if (array == null) {
return "null";
}
Class<?> c = array.getClass();
Class<?> t = c.getComponentType();
boolean tIsArray = t.isArray();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < array.length; i++) {
if (tIsArray) {
sb.append(join((Object[]) array[i], delimiter));
}
else {
sb.append(array[i]);
}
if (i != array.length - 1) {
sb.append(delimiter);
}
}
return sb.toString();
}
@SuppressWarnings("unchecked")
public static <T> T[] add(T[] list, T... values) {
Object[] newList = new Object[list.length + values.length];
System.arraycopy(list, 0, newList, 0, list.length);
System.arraycopy(values, 0, newList, list.length, values.length);
return (T[]) newList;
}
}