我必须制作一个程序,读取收藏夹的文件,例如最喜欢的动物。所以说它在一个文件中读到" Dog,Cat,Fox",每行1。然后将它们放入Arraylist中。在提示用户添加或删除任何用户之后,他们会被要求对它们进行排名。在我困惑的地方 - 为了重新排序/排列arraylist的行,我需要第二个ArrayList来排名吗?此外,在排名后,他们会被要求为每一个添加评论,例如猫 - "我对猫过敏"或类似的东西。这些评论需要第三个数组列表吗?下面是样本输出 -
'最喜欢'|排名|本轮评论(以及之前的所有评论)
如果你想知道我要去哪里,那么现在就是我的代码 - 它没有全部工作但是你会得到它的要点
exist
答案 0 :(得分:1)
很可能,您应该使用class Animal
,String name
等字段撰写一个小String comment
,然后拥有ArrayList<Animal>
。
答案 1 :(得分:0)
如果您熟悉面向对象的OO,那么建议使用类来封装您拥有的数据结构,我写了一个简单的例子,希望它能帮助您解决问题:
动物类
package com.stackoverflow.q1;
import java.util.ArrayList;
import java.util.List;
public class Animal {
private String name;
private Integer rank;
private List<String> comments=new ArrayList<String>();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getRank() {
return rank;
}
public void setRank(Integer rank) {
this.rank = rank;
}
public List<String> getComments() {
return comments;
}
public void setComments(List<String> comments) {
this.comments = comments;
}
@Override
public String toString() {
return "Animal [name=" + name + ", rank=" + rank + ", comments="
+ comments + "]";
}
}
主要课程
package com.stackoverflow.q1;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<Animal> animals= new ArrayList<Animal>();
Animal dog=new Animal();
dog.setName("dog");
dog.setRank(1);
dog.getComments().add("Comment 1");
Animal horse=new Animal();
horse.setName("horse");
horse.setRank(2);
horse.getComments().add("Comment 1");
Animal cow=new Animal();
cow.setName("cow");
cow.setRank(1);
cow.getComments().add("Comment 1");
animals.add(dog);
animals.add(horse);
animals.add(cow);
for(Animal animal:animals){
System.out.println(animal);
}
}
}