我正在用Java学习数组概念。请帮助解决以下问题。
使用下面的代码,我只能打印输入的值,并且不存储以前输入的值。我想使用Array添加元素并在我的问题语句中打印它们。我不应该使用ArrayList
Main Class:
System.out.println("Enter the array value");
int value = scan.nextInt();
scan.nextLine();
arrayobj.add(value);
Array Class:
Integer array[] = new Integer[100];
public void add(Integer value){
for(int i=0;i<1;i++)
{
array[i] = value;
i++;
}
System.out.println("The values are");
for(Integer a : array)
{
if(a!=null)
{
System.out.println(a);
}
}
}
样本输入和输出:
Enter your choice
1.Add
2.Remove
3.Search
1
Enter the array value
1
The values are
1
Do you want to continue[Yes/No]
Yes
Enter your choice
1.Add
2.Remove
3.Search
1
Enter the array value
2
The values are
1
2
答案 0 :(得分:2)
您的代码似乎是错误的,因为以下for循环仅迭代一次并一次又一次替换数组的第0个元素
for(int i=0;i<1;i++)
{
array[i] = value;
i++;
}
数组的长度在Java中是不可变的。这意味着一旦创建数组便无法更改其大小。如果使用2个元素对其进行了初始化,则其长度为2。但是,您可以使用其他集合。
List<Integer> myList = new ArrayList<Integer>();
myList.add(5);
myList.add(7);
使用包装方法
public void addMember(Integer x) {
myList.add(x);
};
您可以使用以下功能通过避免循环来打印列表
System.out.println(Arrays.toString(myList.toArray()));
答案 1 :(得分:2)
像这样定义您的Array类,您最多可以为一个Array对象添加100个元素。如果要添加100个以上的元素,则必须复制该数组并创建一个更大的新数组。
public class Array{
private int tail = 0;
private Integer[] array= new Integer[100];
void add(int value){
if(tail<=100){
array[tail++]= value;
}
else{
System.out.println("Array overflow");
}
Integer[] getArray(){
return array;
}
}