数组重新分配 : 数组基础 « 集合 « Java 教程

En
Java 教程
1. 语言基础
2. 数据类型
3. 操作符
4. 流程控制
5. 类定义
6. 开发相关
7. 反射
8. 正则表达式
9. 集合
10. 线
11. 文件
12. 泛型
13. 本土化
14. Swing
15. Swing事件
16. 二维图形
17. SWT
18. SWT 二维图形
19. 网络
20. 数据库
21. Hibernate
22. JPA
23. JSP
24. JSTL
25. Servlet
26. Web服务SOA
27. EJB3
28. Spring
29. PDF
30. 电子邮件
31. 基于J2ME
32. J2EE应用
33. XML
34. 设计模式
35. 日志
36. 安全
37. Apache工具
38. 蚂蚁编译
39. JUnit单元测试
Java
Java 教程 » 集合 » 数组基础 
9. 3. 13. 数组重新分配

You can make a clone of an array and make the new array have a different size.

public static boolean[] copyOf (boolean[] original, int newLength)

public static byte[] copyOf (byte[] original, int newLength)

public static char[] copyOf (char[] original, int newLength)

public static double[] copyOf (double[] original, int newLength)

public static float [] copyOf (float[] original, int newLength)

public static int[] copyOf (int[] original, int newLength)

public static long[] copyOf (long[] original, int newLength)

public static short[] copyOf (short[] original, int newLength)

public static <T> T[] copyOf (T[] original, int newLength)

public static <T,U> T[] copyOf (U[] original, int newLength,java.lang.Class<? extends T[]> newType)

The last method allows you to upcast each element in the original array to a parent type.

Another method similar to copyOf that is also added to Arrays in Java 6 is copyOfRange.

copyOfRange copies a range of elements to a new array.

Like copyOf, copyOfRange also provides overrides for each Java data type.

Here are their signatures:

public static boolean[] copyOfRange (boolean[] original,int from, int to)

public static byte[] copyOfRange (byte[] original,int from, int to)

public static char[] copyOfRange (char[] original,int from, int to)

public static double[] copyOfRange (double[] original,int from, int to)

public static float[] copyOfRange (float[] original,int from, int to)

public static int[] copyOfRange (int[] original, int from, int to)

public static long[] copyOfRange (long[] original, int from, int to)

public static short[] copyOfRange (short[] original, int from, int to)

public static <T> T[] copyOfRange (T[] original, int from, int to)

public static <T,U> T[] copyOfRange (U[] original, int from,int to, java.lang.Class<? extends T[]> newType)

Array reallocation example

import java.util.Arrays;

public class ArrayReallocationDemo {

  public static void main(String[] args) {
    int[] data1 = new int[] { 1357};

    printArray(data1);
    int[] data2 = Arrays.copyOf(data1, 6);
    data2[511;
    printArray(data2);

    int[] data3 = Arrays.copyOfRange(data1, 210);
    printArray(data3);
  }

  // print array elements
  private static void printArray(int[] data) {
    StringBuilder stringBuilder = new StringBuilder("[");
    for (int i = 0; i < data.length; i++) {
      stringBuilder.append(data[i]);
      if (i < data.length - 1)
        stringBuilder.append(", ");
    }
    stringBuilder.append("]");
    System.out.println(stringBuilder);
  }
}
[1, 3, 5, 7, 9]
[1, 3, 5, 7, 9, 11]
[5, 7, 9, 0, 0, 0, 0, 0]
9. 3. 数组基础
9. 3. 1. 如何定义一个数组
9. 3. 2. 初始化数组元素的索引
9. 3. 3. 数组声明语法
9. 3. 4. Anonymous arrays are declared similarly to regular arrays
9. 3. 5. 一个数组是一个Java对象
9. 3. 6. 引用一个数组的元素
9. 3. 7. 数组的长度
9. 3. 8. 初始化数组
9. 3. 9. Using a for loop to iterate over all the elements and set the values
9. 3. 10. 数组特征
9. 3. 11. 基于for循环利用集
9. 3. 12. 改变数组大小
9. 3. 13. 数组重新分配
9. 3. 14. 使用System.arraycopy复制数组
9. 3. 15. 最低和最高值
9. 3. 16. Shuffle数组元素
9. 3. 17. 合并两个数组合并为一个
9. 3. 18. 循环缓冲区
www.java2java.com | Contact Us
Copyright 2010 - 2030 Java Source and Support. All rights reserved.
All other trademarks are property of their respective owners.