lcsim-contrib/src/main/java/org/lcsim/contrib/onoprien/util
diff -u -r1.1 -r1.2
--- WeightedList.java 9 Feb 2009 03:57:42 -0000 1.1
+++ WeightedList.java 9 Feb 2009 19:43:13 -0000 1.2
@@ -12,7 +12,7 @@
* memory and speed to an object of <tt>ArrayList</tt> type.
*
* @author D. Onoprienko
- * @version $Id: WeightedList.java,v 1.1 2009/02/09 03:57:42 onoprien Exp $
+ * @version $Id: WeightedList.java,v 1.2 2009/02/09 19:43:13 onoprien Exp $
*/
public class WeightedList<E> extends ArrayList<E> {
@@ -95,7 +95,10 @@
_w = new double[2*index+1];
Arrays.fill(_w, 0, index, 1.);
} else if (index == _w.length) {
- _w = Arrays.copyOf(_w, _w.length*2);
+ // _w = Arrays.copyOf(_w, _w.length*2); FIXME JDK 1.6
+ double[] u = new double[_w.length*2];
+ System.arraycopy(_w, 0, u, 0, _w.length);
+ _w = u;
}
_w[index] = weight;
return super.add(element);
@@ -161,7 +164,12 @@
public boolean addAll(Collection<? extends E> c) {
if (_w != null) {
int newSize = size()+c.size();
- if (_w.length < newSize) _w = Arrays.copyOf(_w, newSize);
+ if (_w.length < newSize) {
+ //_w = Arrays.copyOf(_w, newSize); FIXME JDK 1.6
+ double[] u = new double[newSize];
+ System.arraycopy(_w, 0, u, 0, _w.length);
+ _w = u;
+ }
Arrays.fill(_w, size(), newSize, 1.);
}
return super.addAll(c);
@@ -289,13 +297,23 @@
*/
public void ensureCapacity(int minCapacity) {
super.ensureCapacity(minCapacity);
- if (_w != null && _w.length < minCapacity) _w = Arrays.copyOf(_w, Math.max(size(), minCapacity));
+ if (_w != null && _w.length < minCapacity) {
+ // _w = Arrays.copyOf(_w, Math.max(size(), minCapacity)); FIXME JDK 1.6
+ double[] u = new double[Math.max(size(), minCapacity)];
+ System.arraycopy(_w, 0, u, 0, _w.length);
+ _w = u;
+ }
}
/** Trims the capacity of this <tt>WeightedList</tt> instance to be the list's current size. */
public void trimToSize() {
super.trimToSize();
- if (_w != null && _w.length > size()) _w = Arrays.copyOf(_w, size());
+ if (_w != null && _w.length > size()) {
+ // _w = Arrays.copyOf(_w, size()); FIXME JDK 1.6
+ double[] u = new double[size()];
+ System.arraycopy(_w, 0, u, 0, u.length);
+ _w = u;
+ }
}
// -- Object methods : --------------------------------------------------------
@@ -303,7 +321,13 @@
/** Returns a shallow copy of this <tt>WeightedList</tt> instance. */
public WeightedList<E> clone() {
WeightedList<E> newList = new WeightedList<E>(this);
- newList._w = (_w == null) ? null : Arrays.copyOf(_w, size());
+ // newList._w = (_w == null) ? null : Arrays.copyOf(_w, size()); FIXME JDK 1.6
+ if (_w == null) {
+ newList._w = null;
+ } else {
+ newList._w = new double[size()];
+ System.arraycopy(_w, 0, newList._w, 0, size());
+ }
return newList;
}