在Java中,数组的长度是固定的,不能直接添加或删除素。如果需要扩展数组的大小,你可以采用以下几种方法:
创建新数组并复制素
int[] oldArray = {1, 2, 3, 4, 5};int newSize = oldArray.length + 3;int[] newArray = new int[newSize];for (int i = 0; i < oldArray.length; i++) {newArray[i] = oldArray[i];}newArray[oldArray.length] = 6;newArray[oldArray.length + 1] = 7;newArray[oldArray.length + 2] = 8;
使用`Arrays.copyOf()`方法
int[] original = {1, 2, 3};int[] newArray = Arrays.copyOf(original, original.length + 3);newArray[original.length] = 6;newArray[original.length + 1] = 7;newArray[original.length + 2] = 8;
使用`ArrayList`
ArrayListlist = new ArrayList<>(); list.addAll(Arrays.asList(1, 2, 3));list.add(4);list.add(5);list.add(6);list.add(7);list.add(8);int[] newArray = list.stream().mapToInt(Integer::intValue).toArray();
对于二维数组,由于其长度在创建时也是固定的,你可以采用类似的方法:
重新分配新数组
int[][] originalArray = {{1, 2}, {3, 4}};int newSize = originalArray.length + 1;int[][] newArray = new int[newSize];for (int i = 0; i < originalArray.length; i++) {System.arraycopy(originalArray[i], 0, newArray[i], 0, originalArray[i].length);}newArray[originalArray.length] = new int[]{5, 6};
使用`ArrayList`
ArrayList> arrayList = new ArrayList<>();arrayList.add(new ArrayList<>(Arrays.asList(1, 2)));arrayList.add(new ArrayList<>(Arrays.asList(3, 4)));arrayList.add(new ArrayList<>(Arrays.asList(5, 6)));arrayList.add(new ArrayList<>(Arrays.asList(7, 8)));int[][] newArray = arrayList.toArray(new int[arrayList.size()][]);
请注意,以上代码示例中的`newSize`是根据原数组的长度加上需要添加的素数量来计算的。如果需要添加的素数量大于原数组的长度,你需要相应地调整`newSize`的值。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/132517.html