Added Bay's helper methods to CollectionUtils
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130500 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a10c6b0142
commit
f9f92677a9
|
@ -1,7 +1,7 @@
|
||||||
/*
|
/*
|
||||||
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/CollectionUtils.java,v 1.4 2001/05/22 15:53:06 jstrachan Exp $
|
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/java/org/apache/commons/collections/CollectionUtils.java,v 1.5 2001/08/29 16:10:29 jstrachan Exp $
|
||||||
* $Revision: 1.4 $
|
* $Revision: 1.5 $
|
||||||
* $Date: 2001/05/22 15:53:06 $
|
* $Date: 2001/08/29 16:10:29 $
|
||||||
*
|
*
|
||||||
* ====================================================================
|
* ====================================================================
|
||||||
*
|
*
|
||||||
|
@ -67,6 +67,7 @@ import java.util.Enumeration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.NoSuchElementException;
|
import java.util.NoSuchElementException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
@ -76,7 +77,7 @@ import java.util.Set;
|
||||||
*
|
*
|
||||||
* @author Rodney Waldhoff
|
* @author Rodney Waldhoff
|
||||||
*
|
*
|
||||||
* @version $Id: CollectionUtils.java,v 1.4 2001/05/22 15:53:06 jstrachan Exp $
|
* @version $Id: CollectionUtils.java,v 1.5 2001/08/29 16:10:29 jstrachan Exp $
|
||||||
*/
|
*/
|
||||||
public class CollectionUtils {
|
public class CollectionUtils {
|
||||||
/**
|
/**
|
||||||
|
@ -407,6 +408,115 @@ public class CollectionUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given an Object, and an index, it will get the nth value in the
|
||||||
|
* object.
|
||||||
|
*/
|
||||||
|
public static Object index(Object obj, int idx) {
|
||||||
|
return index(obj, new Integer(idx));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given an Object, and an index, it will get the nth value in the
|
||||||
|
* object.
|
||||||
|
*/
|
||||||
|
public static Object index(Object obj, Object index) {
|
||||||
|
if(obj instanceof Map) {
|
||||||
|
Map map = (Map)obj;
|
||||||
|
if(map.containsKey(index)) {
|
||||||
|
return map.get(index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
int idx = -1;
|
||||||
|
if(index instanceof Integer) {
|
||||||
|
idx = ((Integer)index).intValue();
|
||||||
|
}
|
||||||
|
if(idx < 0) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
else if(obj instanceof Map) {
|
||||||
|
Map map = (Map)obj;
|
||||||
|
Iterator iterator = map.keySet().iterator();
|
||||||
|
while(iterator.hasNext()) {
|
||||||
|
idx--;
|
||||||
|
if(idx == -1) {
|
||||||
|
return iterator.next();
|
||||||
|
} else {
|
||||||
|
iterator.next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(obj instanceof List) {
|
||||||
|
return ((List)obj).get(idx);
|
||||||
|
}
|
||||||
|
else if(obj instanceof Object[]) {
|
||||||
|
return ((Object[])obj)[idx];
|
||||||
|
}
|
||||||
|
else if(obj instanceof Enumeration) {
|
||||||
|
Enumeration enum = (Enumeration)obj;
|
||||||
|
while(enum.hasMoreElements()) {
|
||||||
|
idx--;
|
||||||
|
if(idx == -1) {
|
||||||
|
return enum.nextElement();
|
||||||
|
} else {
|
||||||
|
enum.nextElement();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(obj instanceof Iterator) {
|
||||||
|
Iterator iterator = (Iterator)obj;
|
||||||
|
while(iterator.hasNext()) {
|
||||||
|
idx--;
|
||||||
|
if(idx == -1) {
|
||||||
|
return iterator.next();
|
||||||
|
} else {
|
||||||
|
iterator.next();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns an Iterator for the given object. Currently this method can handle
|
||||||
|
* Iterator, Enumeration, Collection, Map, Object[] or array */
|
||||||
|
public static Iterator getIterator(Object obj) {
|
||||||
|
if(obj instanceof Iterator) {
|
||||||
|
return (Iterator)obj;
|
||||||
|
}
|
||||||
|
else if(obj instanceof Collection) {
|
||||||
|
return ((Collection)obj).iterator();
|
||||||
|
}
|
||||||
|
else if(obj instanceof Object[]) {
|
||||||
|
return new ArrayIterator( obj );
|
||||||
|
}
|
||||||
|
else if(obj instanceof Enumeration) {
|
||||||
|
return new EnumerationIterator( (Enumeration)obj );
|
||||||
|
}
|
||||||
|
else if(obj instanceof Map) {
|
||||||
|
return ((Map)obj).values().iterator();
|
||||||
|
}
|
||||||
|
else if(obj != null && obj.getClass().isArray()) {
|
||||||
|
return new ArrayIterator( obj );
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Reverses the order of the given array */
|
||||||
|
public static void reverseArray(Object[] array) {
|
||||||
|
int i = 0;
|
||||||
|
int j = array.length - 1;
|
||||||
|
Object tmp;
|
||||||
|
|
||||||
|
while(j>i) {
|
||||||
|
tmp = array[j];
|
||||||
|
array[j] = array[i];
|
||||||
|
array[i] = tmp;
|
||||||
|
j--;
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
}
|
||||||
private static final int getFreq(final Object obj, final Map freqMap) {
|
private static final int getFreq(final Object obj, final Map freqMap) {
|
||||||
try {
|
try {
|
||||||
return ((Integer)(freqMap.get(obj))).intValue();
|
return ((Integer)(freqMap.get(obj))).intValue();
|
||||||
|
|
Loading…
Reference in New Issue