Author: rwhitcomb Date: Tue Apr 15 23:46:07 2014 New Revision: 1587756 URL: http://svn.apache.org/r1587756 Log: PIVOT-799: Improve operation of Pivot collections objects.
This is just a part of what could be done, according to the issue: Add constructors for ArrayList and HashMap that take java.util counterparts. * new ArrayList(java.util.Collection<T>) constructs a new Pivot list from the existing Java list. * new HashMap(java.util.Map<K,V>) constructs a new Pivot map by copying the existing Java map. Modified: pivot/trunk/core/src/org/apache/pivot/collections/ArrayList.java pivot/trunk/core/src/org/apache/pivot/collections/HashMap.java Modified: pivot/trunk/core/src/org/apache/pivot/collections/ArrayList.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/collections/ArrayList.java?rev=1587756&r1=1587755&r2=1587756&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/collections/ArrayList.java (original) +++ pivot/trunk/core/src/org/apache/pivot/collections/ArrayList.java Tue Apr 15 23:46:07 2014 @@ -198,6 +198,13 @@ public class ArrayList<T> implements Lis comparator = arrayList.comparator; } + public ArrayList(java.util.Collection<T> c) { + verifyNotNull("c", c); + + items = c.toArray(); + length = c.size(); + } + @Override public int add(T item) { int index = -1; Modified: pivot/trunk/core/src/org/apache/pivot/collections/HashMap.java URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/collections/HashMap.java?rev=1587756&r1=1587755&r2=1587756&view=diff ============================================================================== --- pivot/trunk/core/src/org/apache/pivot/collections/HashMap.java (original) +++ pivot/trunk/core/src/org/apache/pivot/collections/HashMap.java Tue Apr 15 23:46:07 2014 @@ -138,6 +138,14 @@ public class HashMap<K, V> implements Ma } } + public HashMap(java.util.Map<K, V> map) { + this(Math.max((int) (map.size() / DEFAULT_LOAD_FACTOR) + 1, DEFAULT_CAPACITY)); + + for (K key : map.keySet()) { + put(key, map.get(key)); + } + } + public HashMap(Comparator<K> comparator) { this();