好的,我需要一些语法问题的帮助。我有一个类,我希望它将它放入arraylist,并使用for循环填充arraylist。 这是我想要的一个例子:
public class w{
int x;
int y;
}
Arraylist m = new Arraylist();
for(int i=0; i<n;i++)
{
m[i].add(w.x);
m[i].add(w.y);
}
是的,代码无法运行,只是我想要它做的一个例子。我不知道语法,我想要一个带有类的arraylist,可以通过给出i来检索,只通过'i'得到两个变量; 任何帮助都会被贬低。非常感谢你的时间,抱歉糟糕的描述,但我不能更具体。
答案 0 :(得分:4)
目前还不清楚你要完成的是什么,但也许这对于如何正确使用ArrayList
就足够了。我将您的类名从w
更改为W
以匹配通常的Java编码约定。
public class W {
int x;
int y;
public W(int x, int y) {
this.x = x;
this.y = y;
}
}
ArrayList<W> m = new ArrayList<W>(); // can be 'new ArrayList<>()` in Java 7
m.add(new W(1, 2));
m.add(new W(5,-3));
// etc.
for (int i=0; i<m.size(); i++) {
W w = m.get(i);
System.out.println("m[" + i + "]=(" + w.x + "," + w.y + ")");
}
for (W w : m) {
System.out.println("next W: (" + w.x + "," + w.y + ")");
}
答案 1 :(得分:0)
您不能使用方括号表示法来通过Java中的索引访问集合。是否以及如何取决于特定的集合API。在List
的情况下,add方法的第二个版本将索引作为参数。
List<Integer> m = new ArrayList<>();
for(int i=0; i<n;i++)
{
m.add(i, w.x);
m.add(i, w.y);
}
答案 2 :(得分:0)
ArrayList
不是传统意义上的数组;它是对象。您必须尊重人们如何访问List
类型的元素,can be found with the Java 7 API
即您可以使用以下两个选项将值放入其中。
.add(E element)
,它将一个具有相同泛型类型的对象作为参数,并且
.addAll(Collection<? extends E> collection)
,它将另一个集合类型作为参数。如果您尝试将基本数组放入List
,则可以将此项与Arrays.asList()
结合使用。
最后一些事情:
LinkedList
而不是ArrayList
。List
。List
,您将无法从instanceof
检索特定字段/功能,因为存储在其中的所有内容都将是Object
,这不是'{1}}是可取的。答案 3 :(得分:0)
你可以这样使用它。
public class w{
int x;
int y;
}
w ref1=new w();
w ref2=new w();
Arraylist<w> m = new Arraylist<w>();
m.add(ref1);
m.add(ref2);
或者你可以做
for(some condition)
{
m.add(new w());
}