我试图将整数添加到int数组中,但Eclipse说:
无法在数组类型int []
上调用add(int)
这对我来说完全不合逻辑。我还尝试了addElement()
和addInt()
,但它们也没有用。
public static void main(String[] args) {
int[] num = new int[args.length];
for (String s : args){
int neki = Integer.parseInt(s);
num.add(neki);
}
答案 0 :(得分:19)
要将元素添加到数组,您需要使用以下格式:
array[index] = element;
array
是您声明的数组,index
是元素存储的位置,element
是您要存储在数组中的项目。
在您的代码中,您希望执行以下操作:
int[] num = new int[args.length];
for (int i = 0; i < args.length; i++) {
int neki = Integer.parseInt(args[i]);
num[i] = neki;
}
add()
方法适用于Collections
,List
和Set
。如果您使用的是ArrayList
(请参阅documentation),则可以使用它,例如:
List<Integer> num = new ArrayList<>();
for (String s : args) {
int neki = Integer.parseInt(s);
num.add(neki);
}
答案 1 :(得分:6)
数组没有add方法。您可以使用num[i]=value;
为数组的元素指定值。
public static void main(String[] args) {
int[] num = new int[args.length];
for (int i=0; i < num.length; i++){
int neki = Integer.parseInt(args[i]);
num[i]=neki;
}
}
答案 2 :(得分:3)
数组具有固定长度。你不能'添加'它。您在开始时定义它将持续多长时间。
int[] num = new int[5];
这会创建一个包含5个桶的整数数组。每个桶包含1个整数。首先,这些都是0
。
num[0] = 1;
num[1] = 2;
上面两行将数组的第一个和第二个值设置为1
和2
。现在你的数组看起来像这样:
[1,2,0,0,0]
如您所见,您可以在其中设置值,但不要将它们添加到最后。
如果您希望能够创建添加到的数字列表,则应使用ArrayList。
答案 3 :(得分:2)
您不能在Java中对数组使用add方法。
要向数组添加内容,请执行此操作
public static void main(String[] args) {
int[] num = new int[args.length];
for (int i = 0; i < args.length; i++){
int neki = Integer.parseInt(s);
num[i] = neki;
}
如果您确实想使用add()方法,请考虑使用ArrayList<Integer>
。这有几个优点 - 例如,它不限于创建时设置的最大尺寸。您可以无限期地添加元素。然而,它并不像数组那么快,所以如果你真的希望性能坚持阵列。它还要求您使用Integer对象而不是原始int类型,这可能会导致问题。
ArrayList示例
public static void main(String[] args) {
ArrayList<Integer> num = new ArrayList<Integer>();
for (String s : args){
Integer neki = new Integer(Integer.parseInt(s));
num.add(s);
}
答案 4 :(得分:1)
数组与ArrayList
不同,您可以在其上调用add
。你首先需要一个索引。在i
循环之前声明for
。然后,您可以使用数组访问表达式将元素分配给数组。
num[i] = s;
i++;
答案 5 :(得分:0)
你有一个int
数组,这是一个基本类型,基本类型没有方法添加。你应该寻找Collections
。
答案 6 :(得分:0)
org.apache.commons.lang.ArrayUtils可以做到
num = (int []) ArrayUtils.add(num, 12); // builds new array with 12 appended