1 18 19 package com.Ostermiller.util; 20 21 import java.lang.reflect.*; 22 import java.io.*; 23 24 32 public final class ArrayHelper { 33 34 49 public static Object [] cat(Object [] arr1, Object [] arr2){ 50 Class commonSuperClass = Object .class; 52 boolean foundcommonSuperClass=false; 53 for (Class c1 = arr1.getClass().getComponentType(); !foundcommonSuperClass && !c1.equals(Object .class); c1 = c1.getSuperclass()){ 54 for (Class c2 = arr2.getClass().getComponentType(); !foundcommonSuperClass && !c2.equals(Object .class); c2 = c2.getSuperclass()){ 55 if (c2.equals(c1)){ 56 foundcommonSuperClass = true; 57 commonSuperClass = c1; 58 } 59 } 60 } 61 Object [] result = (Object [])Array.newInstance(commonSuperClass, arr1.length + arr2.length); 63 System.arraycopy(arr1, 0, result, 0, arr1.length); 65 System.arraycopy(arr2, 0, result, arr1.length, arr2.length); 66 return result; 67 } 68 69 76 public static void print(Object [] arr){ 77 try { 78 CSVPrinter csvp = new CSVPrinter(System.out); 79 for (int i=0; i<arr.length; i++){ 80 csvp.write(arr[i].toString()); 81 } 82 csvp.writeln(); 83 csvp.flush(); 84 } catch (IOException iox){ 85 iox.printStackTrace(System.err); 86 } 87 } 88 89 98 public static boolean equal(Object [] arr1, Object [] arr2){ 99 if (arr1 == null && arr2 == null) return true; 100 if (arr1 == null || arr2 == null) return false; 101 if (arr1.length != arr2.length) return false; 102 for (int i=0; i<arr1.length; i++){ 103 if (!equalObjects(arr1[i], arr2[i])) return false; 104 } 105 return true; 106 } 107 108 115 private static boolean equalObjects(Object o1, Object o2){ 116 if (o1 == null && o2 == null) return true; 117 if (o1 == null || o2 == null) return false; 118 return o1.equals(o2); 119 } 120 } 121 | Popular Tags |