You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by pj...@apache.org on 2002/08/10 02:36:35 UTC
cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections TestCollectionUtils.java
pjack 2002/08/09 17:36:34
Modified: collections/src/java/org/apache/commons/collections
CollectionUtils.java
collections/src/test/org/apache/commons/collections
TestCollectionUtils.java
Log:
PR:10168
Submitted by:Maarten Coene (MacBelgium at toughguy dot net)
Revision Changes Path
1.9 +22 -21 jakarta-commons/collections/src/java/org/apache/commons/collections/CollectionUtils.java
Index: CollectionUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/java/org/apache/commons/collections/CollectionUtils.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- CollectionUtils.java 12 Jun 2002 03:59:15 -0000 1.8
+++ CollectionUtils.java 10 Aug 2002 00:36:34 -0000 1.9
@@ -463,14 +463,7 @@
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();
- }
- }
+ return index(iterator, idx);
}
else if(obj instanceof List) {
return ((List)obj).get(idx);
@@ -490,17 +483,25 @@
}
}
else if(obj instanceof Iterator) {
- Iterator iterator = (Iterator)obj;
- while(iterator.hasNext()) {
- idx--;
- if(idx == -1) {
- return iterator.next();
- } else {
- iterator.next();
- }
- }
+ return index((Iterator)obj, idx);
+ }
+ else if(obj instanceof Collection) {
+ Iterator iterator = ((Collection)obj).iterator();
+ return index(iterator, idx);
}
return obj;
+ }
+
+ private static Object index(Iterator iterator, int idx) {
+ while(iterator.hasNext()) {
+ idx--;
+ if(idx == -1) {
+ return iterator.next();
+ } else {
+ iterator.next();
+ }
+ }
+ return iterator;
}
/** Returns an Iterator for the given object. Currently this method can handle
1.3 +22 -4 jakarta-commons/collections/src/test/org/apache/commons/collections/TestCollectionUtils.java
Index: TestCollectionUtils.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/TestCollectionUtils.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestCollectionUtils.java 14 Jul 2001 23:33:27 -0000 1.2
+++ TestCollectionUtils.java 10 Aug 2002 00:36:34 -0000 1.3
@@ -310,4 +310,22 @@
assertTrue(CollectionUtils.isEqualCollection(a,b));
assertTrue(CollectionUtils.isEqualCollection(b,a));
}
+
+
+ public void testIndex() {
+ Map map = new HashMap();
+ map.put(new Integer(0), "element");
+ Object test = CollectionUtils.index(map, 0);
+ assertTrue(test.equals("element"));
+
+ List list = new ArrayList();
+ list.add("element");
+ test = CollectionUtils.index(list, 0);
+ assertTrue(test.equals("element"));
+
+ Bag bag = new HashBag();
+ bag.add("element", 1);
+ test = CollectionUtils.index(bag, 0);
+ assertTrue(test.equals("element"));
+ }
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>