如何在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,它会自动增加的大小。