java.util.ArrayList.newCapacity()方法的使用及代码示例

x33g5p2x  于2022-01-15 转载在 其他  
字(8.3k)|赞(0)|评价(0)|浏览(204)

本文整理了Java中java.util.ArrayList.newCapacity()方法的一些代码示例,展示了ArrayList.newCapacity()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。ArrayList.newCapacity()方法的具体详情如下:
包路径:java.util.ArrayList
类名称:ArrayList
方法名:newCapacity

ArrayList.newCapacity介绍

[英]This method controls the growth of ArrayList capacities. It represents a time-space tradeoff: we don't want to grow lists too frequently (which wastes time and fragments storage), but we don't want to waste too much space in unused excess capacity. NOTE: This method is inlined into #add(Object) for performance. If you change the method, change it there too!
[中]此方法控制ArrayList的增长容量。它代表了一种时空权衡:我们不希望列表增长太频繁(这会浪费时间和存储碎片),但我们不希望在未使用的过剩容量中浪费太多空间。注意:为了提高性能,此方法内联到#add(Object)中。如果你改变方法,也要在那里改变!

代码示例

代码示例来源:origin: robovm/robovm

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: robovm/robovm

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: robovm/robovm

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

代码示例来源:origin: MobiVM/robovm

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: ibinti/bugvm

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: com.bugvm/bugvm-rt

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: com.gluonhq/robovm-rt

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: FlexoVM/flexovm

/**
 * Adds the objects in the specified collection to this {@code ArrayList}.
 *
 * @param collection
 *            the collection of objects.
 * @return {@code true} if this {@code ArrayList} is modified, {@code false}
 *         otherwise.
 */
@Override public boolean addAll(Collection<? extends E> collection) {
  Object[] newPart = collection.toArray();
  int newPartSize = newPart.length;
  if (newPartSize == 0) {
    return false;
  }
  Object[] a = array;
  int s = size;
  int newSize = s + newPartSize; // If add overflows, arraycopy will fail
  if (newSize > a.length) {
    int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
    Object[] newArray = new Object[newCapacity];
    System.arraycopy(a, 0, newArray, 0, s);
    array = a = newArray;
  }
  System.arraycopy(newPart, 0, a, s, newPartSize);
  size = newSize;
  modCount++;
  return true;
}

代码示例来源:origin: MobiVM/robovm

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: ibinti/bugvm

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: com.bugvm/bugvm-rt

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: com.gluonhq/robovm-rt

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: FlexoVM/flexovm

} else {
  Object[] newArray = new Object[newCapacity(s)];
  System.arraycopy(a, 0, newArray, 0, index);
  System.arraycopy(a, index, newArray, index + 1, s - index);

代码示例来源:origin: MobiVM/robovm

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

代码示例来源:origin: com.mobidevelop.robovm/robovm-rt

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

代码示例来源:origin: ibinti/bugvm

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

代码示例来源:origin: com.bugvm/bugvm-rt

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

代码示例来源:origin: com.gluonhq/robovm-rt

System.arraycopy(a, index, a, index + newPartSize, s - index);
} else {
  int newCapacity = newCapacity(newSize - 1);  // ~33% growth room
  Object[] newArray = new Object[newCapacity];
  System.arraycopy(a, 0, newArray, 0, index);

相关文章