Java 向未定义大小的数组添加值
我已经研究并尝试了几个小时来解决我的问题,但现实是,我找不到任何关于它的东西。这真的很简单。我需要初始化未定义大小的java数组,然后比较两者。在测试程序的过程中,当我将数组定义为特定长度时(例如) 代码将一直等待,直到我输入了六个对象,才能转到下一段代码,因为它正在等待定义为数组长度的6个整数。但是我不能使用Java 向未定义大小的数组添加值,java,arrays,for-loop,initializing,Java,Arrays,For Loop,Initializing,我已经研究并尝试了几个小时来解决我的问题,但现实是,我找不到任何关于它的东西。这真的很简单。我需要初始化未定义大小的java数组,然后比较两者。在测试程序的过程中,当我将数组定义为特定长度时(例如) 代码将一直等待,直到我输入了六个对象,才能转到下一段代码,因为它正在等待定义为数组长度的6个整数。但是我不能使用 int[] array = {}; 这显然不起作用,因为array.length函数将为0 我的代码如下 import java.util.Scanner; import java.u
int[] array = {};
这显然不起作用,因为array.length函数将为0
我的代码如下
import java.util.Scanner;
import java.util.Arrays;
public class Test {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
// My problem is in the definition of the arrays or the for loops defining them below.
int[] list1 = new int[]; // undefined
int[] list2 = new int[]; // undefined
// ask user to fill the two arrays to see if they are equal
System.out.print("Enter list one >> ");
for (int i = 0; i < list1.length; i++){
list1[i] = input.nextInt();
}
System.out.print("Enter list two >> ");
for (int i = 0; i < list2.length; i++){
list2[i] = input.nextInt();
}
// call the equality testing method and output whether or not the two lists are strictly identical or not.
if (equals(list1, list2) == true)
System.out.println("The two lists are strictly identical");
else
System.out.println("The two lists are not strictly identical");
}
// this method
public static boolean equals(int[] list1, int[] list2){
boolean bool = false;
if (Arrays.equals(list1, list2))
bool = true;
else
bool = false;
return bool;
}
}
import java.util.Scanner;
导入java.util.array;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
//我的问题在于数组的定义或下面定义它们的for循环。
int[]list1=新int[];//未定义
int[]list2=新int[];//未定义
//让用户填充这两个数组,看看它们是否相等
系统输出打印(“输入列表一>>”;
for(int i=0;i>”;
for(int i=0;i
我需要初始化未定义大小的java数组
您需要使用ArrayList或在开始时询问长度
List<Integer> list1 = new ArrayList<>();
System.out.println("Enter numbers, with a blank line to end");
for (String line; !(line = input.nextLine()).trim().isEmpty(); ) {
list1.add(Integer.parseInt(line));
}
// later
if (list1.equals(list2))
它显然无法工作,因为array.length函数无法工作
这就像预期的那样,并且
数组。长度总是0
我仍然无法完成我真正想要完成的任务,但我已经用我的代码进行了妥协。它允许用户在输入整数之前指定长度
import java.util.Scanner;
导入java.util.array;
公开课考试{
公共静态void main(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.print(“第一个列表有多少个变量?”);
int n=input.nextInt();
int[]列表1=新的int[n];
System.out.print(“第二个列表有多少个变量?”);
n=input.nextInt();
int[]list2=新的int[n];
//让用户填充这两个数组,看看它们是否相等
系统输出打印(“输入列表一>>”;
for(int i=0;i>”;
for(int i=0;i }
我发现这是一个老问题,但我有一个相同的问题(或至少相似),找不到我正在搜索的答案。现在我相信我已经找到了答案,并愿意与大家分享。也许对某些人来说这会很方便
根据我的理解,这个问题是关于创建一个长度未定义的一维数组,这个数组的长度将随着扫描仪的输入而增加。我看到的很多答案都是关于使用ArrayList的。但我还是想知道如何用一维数组来实现。首先,让我与您分享代码,然后是解释:
public class Main {
static Scanner scanner = new Scanner(System.in);
final static int ARRAY_MAX_LENGTH = 400_000_000;
public static void main(String[] args) {
int[] numbers = createIntArray();
displayArray(numbers);
}
public static int[] createIntArray() {
int[] ints = new int[ARRAY_MAX_LENGTH];
System.out.print("Enter numbers: ");
for (int i = 0; i < ints.length; i++) {
ints[i] = scanner.nextInt();
if (ints[i] == 0) {
break;
}
} return ints;
}
public static void displayArray(int[] ints) {
for (int i = 0; i < ints.length; i++) {
System.out.print(ints[i] + " ");
if (ints[i] == 0) {
break;
}
}
}
}
如果您想使用这段代码,只需找出最大数组长度并使用它即可
对我来说,这个问题很有趣,但我肯定不会在大型项目中使用它。这根本没有效率。对于新手:如果您刚刚学习了一维数组,请耐心等待,ArrayList将出现在您以后的研究中,它可以使事情变得更简单。初始化时的数组需要指定大小。对于未定义的大小,请使用数组列表、向量等。if(equals(list1,list2)==true)
与if(equals(list1,list2))
,在equals方法中,您可以使用返回数组。equals(list1,list2)
软件(netbeans)会等到我输入了六个对象后再转到下一段代码
——这是因为您要循环6次才能添加到阵列?使用int[]array=newint[6]是否存在java问题代码>?您可以查看>如何在中创建动态数组java@ramazankul链接的格式是[pretty](url)
所有内容都硬编码为6个元素,我认为没有可变数量的链接elements@phflack在这种情况下,没有理由创建一个未定义大小的数组,因为该大小将被定义为6。他说问题是int[]数组=新整数[6]代码>不是working@phflack也许netbeans和java语言之间的区别对于OP和s/he来说并不清楚
System.out.println("Enter the number of numbers, followed by the numbers");
int[] array1 = new int[input.nextInt()]; // enter the size first.
for (int i = 0; i < array1.length; i++)
array[i] = input.nextInt();
// later
if (Arrays.equals(array1, array2))
int[] array = {};
public class Main {
static Scanner scanner = new Scanner(System.in);
final static int ARRAY_MAX_LENGTH = 400_000_000;
public static void main(String[] args) {
int[] numbers = createIntArray();
displayArray(numbers);
}
public static int[] createIntArray() {
int[] ints = new int[ARRAY_MAX_LENGTH];
System.out.print("Enter numbers: ");
for (int i = 0; i < ints.length; i++) {
ints[i] = scanner.nextInt();
if (ints[i] == 0) {
break;
}
} return ints;
}
public static void displayArray(int[] ints) {
for (int i = 0; i < ints.length; i++) {
System.out.print(ints[i] + " ");
if (ints[i] == 0) {
break;
}
}
}
}
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space