138 |
|
return size() == 0; |
139 |
|
} |
140 |
|
|
141 |
+ |
|
142 |
+ |
/** |
143 |
+ |
* Test for equality, coping with nulls. |
144 |
+ |
*/ |
145 |
+ |
private static boolean eq(Object o1, Object o2) { |
146 |
+ |
return (o1 == null ? o2 == null : o1.equals(o2)); |
147 |
+ |
} |
148 |
+ |
|
149 |
|
/** |
150 |
|
* static version of indexOf, to allow repeated calls without |
151 |
|
* needing to re-acquire array each time. |
371 |
|
int len = elements.length; |
372 |
|
Object oldValue = elements[index]; |
373 |
|
|
374 |
< |
if (oldValue != element && |
367 |
< |
(element == null || !element.equals(oldValue))) { |
374 |
> |
if (oldValue != element) { |
375 |
|
Object[] newElements = copyOf(elements, len); |
376 |
|
newElements[index] = element; |
377 |
|
setArray(newElements); |
493 |
|
Object[] newElements = new Object[newlen]; |
494 |
|
|
495 |
|
for (int i = 0; i < newlen; ++i) { |
496 |
< |
if (o == elements[i] || |
490 |
< |
(o != null && o.equals(elements[i]))) { |
496 |
> |
if (eq(o, elements[i])) { |
497 |
|
// found one; copy remaining and exit |
498 |
|
for (int k = i + 1; k < len; ++k) |
499 |
|
newElements[k - 1] = elements[k]; |
504 |
|
} |
505 |
|
|
506 |
|
// special handling for last cell |
507 |
< |
if (o == elements[newlen] || |
502 |
< |
(o != null && o.equals(elements[newlen]))) { |
507 |
> |
if (eq(o, elements[newlen])) { |
508 |
|
setArray(newElements); |
509 |
|
return true; |
510 |
|
} |
570 |
|
int len = elements.length; |
571 |
|
Object[] newElements = new Object[len + 1]; |
572 |
|
for (int i = 0; i < len; ++i) { |
573 |
< |
if (e == elements[i] || (e != null && e.equals(elements[i]))) |
573 |
> |
if (eq(e, elements[i])) |
574 |
|
return false; // exit, throwing away copy |
575 |
|
else |
576 |
|
newElements[i] = elements[i]; |
866 |
|
public String toString() { |
867 |
|
Object[] elements = getArray(); |
868 |
|
int maxIndex = elements.length - 1; |
869 |
< |
StringBuffer buf = new StringBuffer(); |
870 |
< |
buf.append("["); |
869 |
> |
StringBuilder sb = new StringBuilder(); |
870 |
> |
sb.append("["); |
871 |
|
for (int i = 0; i <= maxIndex; i++) { |
872 |
< |
buf.append(String.valueOf(elements[i])); |
872 |
> |
sb.append(String.valueOf(elements[i])); |
873 |
|
if (i < maxIndex) |
874 |
< |
buf.append(", "); |
874 |
> |
sb.append(", "); |
875 |
|
} |
876 |
< |
buf.append("]"); |
877 |
< |
return buf.toString(); |
876 |
> |
sb.append("]"); |
877 |
> |
return sb.toString(); |
878 |
|
} |
879 |
|
|
880 |
|
/** |
896 |
|
if (!(o instanceof List)) |
897 |
|
return false; |
898 |
|
|
899 |
< |
List<E> l2 = (List<E>)(o); |
899 |
> |
List<?> l2 = (List<?>)(o); |
900 |
|
if (size() != l2.size()) |
901 |
|
return false; |
902 |
|
|
903 |
|
ListIterator<?> e1 = listIterator(); |
904 |
|
ListIterator<?> e2 = l2.listIterator(); |
905 |
|
while (e1.hasNext()) { |
906 |
< |
Object o1 = e1.next(); |
902 |
< |
Object o2 = e2.next(); |
903 |
< |
if (!(o1 == null ? o2 == null : o1.equals(o2))) |
906 |
> |
if (!eq(e1.next(), e2.next())) |
907 |
|
return false; |
908 |
|
} |
909 |
|
return true; |