如何在java中增加数组的大小?

我想在数组中存储用户所需的尽可能多的元素。但我该怎么做?,如果我要创建一个数组,我必须使用固定大小。 每次将一个新元素添加到数组并且数组变满时,我想用’1’更新它的大小。我厌倦了各种类型的代码..但是它没有用完。如果有的话,那会很有帮助。如果可能的话,yall可以给我一些关于它的解决方案。感谢你。谢谢

不使用数组,而是使用java.util.List的实现,例如ArrayList 。 ArrayList有一个数组后端,它在列表中保存值,但数组大小会自动由列表处理。

 ArrayList list = new ArrayList(); list.add("some string"); 

您还可以使用list.toArray(new String[list.size()])将列表转换为数组,以此类推其他元素类型。

您可以创建一个大小比原始大一个元素的临时数组,然后将原始元素复制到temp中,并将临时数组分配给新数组。

 public void increaseSize() { String[temp] = new String[original.length + 1]; for (int i = 0; i < original.length; i++){ temp[i] = original[i]; } original = temp; } 

您可以通过各种方式更改大小,但同样的想法也适用。

通过在java.util.Arrays使用copyOf方法,类String[]大小自动/动态增加。

 package com.google.service; import java.util.Arrays; public class StringArrayAutoIncrement { public static void main(String[] args) { String[] data = new String[] { "a", "b", "c", "d", "e" }; String[] array = new String[0];// array initialize with zero int incrementLength = 1; for (int i = 0; i < data.length; i++) { array = Arrays.copyOf(data, i + incrementLength);// increment by +1 } /** * values of array after increment */ for (String value : array) { System.out.println(value); } } } 

输出:

 a b c d e 

创建列表对象,添加元素并使用list.toArray将该列表对象转换为数组(new String [list.size()])

你不能。 您可以创建一个新数组并将项目移动到该数组 – 或者您可以使用ArrayList。

在较低的级别,你可以这样做:

 long[] source = new long[1]; long[] copy = new long[source.length + 1]; System.arraycopy(source, 0, copy, 0, source.length); source = copy; 

Arrays.copyOf()正在做同样的事情。

你可以使用数组列表

这是字符串数组列表的示例

‘import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList;

公共课Ex01 {

 public static void main(String[] args) throws IOException { BufferedReader userInput = new BufferedReader (new InputStreamReader(System.in)); ArrayList myArr = new ArrayList(); myArr.add("Italian Riviera"); myArr.add("Jersey Shore"); myArr.add("Puerto Rico"); myArr.add("Los Cabos Corridor"); myArr.add("Lubmin"); myArr.add("Coney Island"); myArr.add("Karlovy Vary"); myArr.add("Bourbon-l'Archambault"); myArr.add("Walt Disney World Resort"); myArr.add("Barbados"); System.out.println("Stupid Vacation Resort Adviser"); System.out.println("Enter your name:"); String name = userInput.readLine(); Integer nameLength = name.length(); if (nameLength == 0) { System.out.println("empty name entered"); return; } Integer vacationIndex = nameLength % myArr.size(); System.out.println("\nYour name is "+name+", its length is " + nameLength + " characters,\n" + "that's why we suggest you to go to " + myArr.get(vacationIndex)); } 

}”

类似地,你可以为整数,blooean和各种数据类型制作数组

更多细节你可以看到这一点

http://www.anyexample.com/programming/java/java_arraylist_example.xml

 public class IncreaseArraySize { public static void main(String[] args) { int arr[] = new int[5]; for (int i = 0; i < arr.length; i++) { arr[i] = 5; } for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(" "); System.out.println("Before increasing Size of an array :" + arr.length); int arr2[] = new int[10]; arr = arr2; arr2 = null; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(""); System.out.println("After increasing Size of an array : " + arr.length); } } 

使用ArrayList。 如果您尝试添加到完整的ArrayList,它会自动增加的大小。