请参阅代码:
public Core()
{
class1 = new int[5]; //declares array for 5 class
class2 = new int[5]; //delcares array for 5 class
System.out.println("Please type 1 for First Classe:");
select = input.nextInt();
if(select == 1)
{
}
}
好的。如果用户选择选项号1,则占用阵列存储器中的一个位置。例如:
class1 = new int[4];
或者,如果超过内存,则会显示一条消息。
答案 0 :(得分:2)
您无法向数组添加元素 - 它们在创建后是固定大小。我怀疑你最好使用List
实现某些描述,例如ArrayList
。
说实话并不是很清楚 - 说实话 - 但几乎可以肯定的是,使用集合代替数组可以让你的生活更轻松。
答案 1 :(得分:0)
您在寻找ArrayList吗?
import java.util.*;
ArrayList list = new ArrayList();
ArrayLists具有动态大小,因此您可以在运行时添加和删除数组成员。
list.add(someObject); //add object
list.remove(2); //remove object by index, objects will 'slide' down to fill the gap
int size = list.size(); //get size of ArrayList
String object = list.get(3) //get object in array, not always string
答案 2 :(得分:0)
为什么不直接使用java.util.List
?
List<List<Integer>> classes = new ArrayList<List<Integer>>();
classes.add(new ArrayList<Integer>());
classes.add(new ArrayList<Integer>());
// Assume the user inputs 1.
int select = 1;
// Retrieve the list and add values to the list.
List<Integer> theClass = classes.get(select);
theClass.add(someValue);
..
theClass.add(someValueN);
// And from your question you wanted some restriction on the size,
// so you deal with that here, for instance.
if (theClass.size() > 5) {
System.err.println("Size exceeded!");
for (int i = theClass.size() - 1; i >= 5; i--) {
theClass.remove(i);
}
}
// Print them out.
for (int i = 0; i < theClass.size(); i++) {
// The difference to your comment is actually referencing
// all entries with the index 'i'.
System.out.println(theClass.get(i));
}
请注意,如果您稍后再次删除该元素,最好不要添加该元素。但这只是这个想法的简单说明。
答案 3 :(得分:0)
好像你想在数组中插入元素,直到它满了。
您声明的那个不是动态数组而是静态数组。这意味着,一旦您宣布int[] class1 = new int[5]
,您将只有5个插槽,并且您必须小心插入它们。
class1[0] = value
这个值在数组的第一个插槽中插入,而下一个插入:
class1[5] = something
是错误的,因为您正在尝试设置大小为5的数组的第六个元素。您需要做的是添加元素直到填充数组。您可以通过具有跟踪当前位置的索引值来执行此操作:
int index = 0; int [] class1 = new int [5];
....
if (index < class1.length)
class1[index] = value
else
//ARRAY IS FULL!
或者您可以检查阵列本身:
int i = 0;
boolean placed = false;
while (i < class1.length && class1[i] != null)
++i;
if (i < class1.length)
class1[i] = value;
else
//ARRAY IS FULL!
但我的建议是绝对使用ArrayList
,并将最大尺寸保留为变量。