Here you can find the source of equals(Object[] objs1, Object[] objs2)
public static boolean equals(Object[] objs1, Object[] objs2)
//package com.java2s; //License from project: Open Source License import java.util.Collection; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class Main { public static boolean equals(Object[] objs1, Object[] objs2) { if ((objs1 == null) && (objs2 == null)) return true; if ((objs1 == null) || (objs2 == null)) return false; if (objs1.length != objs2.length) return false; Set<Object> set1 = toSet(objs1); Set<Object> set2 = toSet(objs2); set1.removeAll(set2);/*from ww w. j a va 2 s .c om*/ return set1.size() == 0; } /** * @param selection * @return */ public static Set<Object> toSet(Object[] objs) { Set<Object> ret = new HashSet<Object>(); if (objs != null) for (int i = 0; i < objs.length; i++) ret.add(objs[i]); return ret; } public static void removeAll(Collection<Object> ret, Object[] elements) { if (elements != null) for (int i = 0; i < elements.length; i++) ret.remove(elements[i]); } public static void removeAll(Collection<Object> ret, Iterator<Object> elements) { if (elements != null) while (elements.hasNext()) ret.remove(elements.next()); } }