动态对象添加到阵列
问题描述:
我有这样的代码,它工作正常:动态对象添加到阵列
News news_data[] = new News[] {
new News("1","news 1","this is news 1"),
new News("2","news 2","this is news 2"),
new News("2","news 1","this is news 2"),
};
在这段代码中我添加3个新的对象,但我必须动态地添加他们在循环中。我怎样才能做到这一点?事实上,我不明白这个数组结构。请解释这段代码给我,如果你可以把它简单
我试过,但它不工作:
News news_data[];
for(i=1;i<3;i++){
news_data=new News[] {
new News("1","news 1","this is news 1"),
new News("2","news 2","this is news 2"),
new News("2","news 1","this is news 2"),
};
}
答
有一个在Java
没有动态分配,Lists
在这里这样的目的。 例如,List
,ArrayList
,LinkedList
...
这样使用:
// Declaring, initializing the list
ArrayList<News> list = new ArrayList<News>();
// Adding a news :
News news = new News("1","news 1","this is news 1");
list.add(news);
如果你已经有了一个News
阵列(在你的榜样news_data
),您可以快速填写您的列表开始:
for(News n : news_data) { list.add(n); }
答
News news_data[] = new News[3]; // defining the size of Array to 3
new_data[0] = new News("1","news 1","this is news 1"),
new_data[1] = new News("2","news 2","this is news 2"),
new_data[2] = new News("2","news 1","this is news 2"),
,但更好的方法将b e传给用户ArrayList。它们用于动态结构。
List<news> news_data = new ArrayList<News>();
news_data.add(new News("1","news 1","this is news 1"));
news_data.add(new News("2","news 2","this is news 2"));
news_data.add(new News("2","news 1","this is news 2"));
答
如果您主要在列表中间添加和删除对象(顺序很重要),最好使用LinkedList。如果经常使用随机访问,ArrayList将是更好的选择,在这种情况下,您可以在O(1)时间内将元素添加到末尾。见http://en.wikiversity.org/wiki/Java_Collections_Overview