ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/ArrayList.java
(Generate patch)

Comparing jsr166/src/main/java/util/ArrayList.java (file contents):
Revision 1.53 by jsr166, Mon Jul 3 20:08:10 2017 UTC vs.
Revision 1.57 by jsr166, Wed Mar 28 02:50:41 2018 UTC

# Line 1 | Line 1
1   /*
2 < * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
2 > * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
3   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4   *
5   * This code is free software; you can redistribute it and/or modify it
# Line 28 | Line 28 | package java.util;
28   import java.util.function.Consumer;
29   import java.util.function.Predicate;
30   import java.util.function.UnaryOperator;
31 + import jdk.internal.misc.SharedSecrets;
32  
33   /**
34   * Resizable-array implementation of the {@code List} interface.  Implements
# Line 820 | Line 821 | public class ArrayList<E> extends Abstra
821  
822          if (size > 0) {
823              // like clone(), allocate array based upon size not capacity
824 +            SharedSecrets.getJavaObjectInputStreamAccess().checkArray(s, Object[].class, size);
825              Object[] elements = new Object[size];
826  
827              // Read in all elements in the proper order.
# Line 1147 | Line 1149 | public class ArrayList<E> extends Abstra
1149              return modified;
1150          }
1151  
1152 +        public Object[] toArray() {
1153 +            checkForComodification();
1154 +            return Arrays.copyOfRange(root.elementData, offset, offset + size);
1155 +        }
1156 +
1157 +        @SuppressWarnings("unchecked")
1158 +        public <T> T[] toArray(T[] a) {
1159 +            checkForComodification();
1160 +            if (a.length < size)
1161 +                return (T[]) Arrays.copyOfRange(
1162 +                        root.elementData, offset, offset + size, a.getClass());
1163 +            System.arraycopy(root.elementData, offset, a, 0, size);
1164 +            if (a.length > size)
1165 +                a[size] = null;
1166 +            return a;
1167 +        }
1168 +
1169          public Iterator<E> iterator() {
1170              return listIterator();
1171          }
# Line 1554 | Line 1573 | public class ArrayList<E> extends Abstra
1573                      setBit(deathRow, i - beg);
1574              if (modCount != expectedModCount)
1575                  throw new ConcurrentModificationException();
1557            expectedModCount++;
1576              modCount++;
1577              int w = beg;
1578              for (i = beg; i < end; i++)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines