我创建了一个对象N,它有一些属性,如下所示:
public class LogEvidence {
private String comment;
private String url;
private String time;
public LogEvidence(String comentario, String url, String tiempo) {
super();
this.comment = comentario;
this.url = url;
this.time = tiempo;
}
public String getComentario() {
return comment;
}
public void setComentario(String comentario) {
this.comment = comentario;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getTiempo() {
return time;
}
public void setTiempo(String tiempo) {
this.time = tiempo;
}
@Override
public String toString() {
return "LogEvidence [comentario=" + comment + ", url=" + url + ", tiempo=" + time + "]";
}
}
现在我想做这样的事情:
ArrayList<LogEvidence>log = new ArrayList<LogEvidence>();
我想浏览列表并将所有属性添加到我的对象中,我的意思是这样的:
log.setComment("comment one");
log.setUrl("http://google.com");
log.setTime("04:20");
也许这是不可能的,我必须做以下的事情?
List list= new List();
LogEvidence object1= new LogEvidence ();
object1.setComment("comment");
object1.setUrl("http://url.com");
object1.setTime(20);
lista.add(object1);
答案 0 :(得分:1)
这是你可以做到的:
创建LogEvidence
。
LogEvidence logEvidence = new LogEvidence();
logEvidence.setComentario("comment one");
logEvidence.setUrl("http://google.com");
logEvidence.setTiempo("04:20");
并将其添加到数组列表中。
log.add(logEvidence);
因此,您可以创建更多对象并继续放入列表中。由于您的列表被命名为log
,因此您将添加log
稍微解释一下,它应该是这样的:
List<LogEvidence> logEvidenceList = new ArrayList<>();
LogEvidence logEvidence1 = new LogEvidence();
logEvidence1.setComentario("comment one");
logEvidence1.setUrl("http://google.com");
logEvidence1.setTiempo("04:20");
logEvidenceList.add(logEvidence1);
LogEvidence logEvidence2 = new LogEvidence();
logEvidence2.setComentario("comment one");
logEvidence2.setUrl("http://google.com");
logEvidence2.setTiempo("04:20");
logEvidenceList.add(logEvidence2);
....
....
....
或者通过构造函数调用,这将变得更简洁和可读。
List<LogEvidence> logEvidenceList = new ArrayList<>();
LogEvidence logEvidence1 = new LogEvidence("comment one","http://google.com","04:20");
logEvidenceList.add(logEvidence1);
LogEvidence logEvidence2 = new LogEvidence("comment one","http://google.com","04:20");
logEvidenceList.add(logEvidence2);
....
....
....
现在,当您想要从列表中检索对象时,您可以遍历列表并逐个获取;
for (LogEvidence evidence : logEvidenceList) {
System.out.println(evidence);
}
的详细信息
答案 1 :(得分:0)
正如Kon评论的那样,您正在尝试对列表中的对象进行操作,而不是列表本身。
有几种方法可以做到这一点,但由于你有一个参数化的construtor,最简单的是:
ArrayList<LogEvidence> log = new ArrayList<LogEvidence>();
log.add(new LogEvidence("comment one", "http://url.com", "04:20");
我们使用new ArrayList<LogEvidence>()
创建列表,并将其分配给名为log
的变量。
然后,我们创建一个新的LogEvidence
对象,已经通过它的构造函数的参数用new LogEvidence("comment one","http://url.com","04:20")
分配它的数据。
由于它将存储在列表中,我们可以使用匿名 。我们使用列表的.add(E e)
方法直接将其添加到列表中,而不是将其分配给变量。
在这种情况下,您无需定义或分配不必要的变量。
如果您需要从列表中访问任何特定的LogEvidence
,则可以使用.get(int index)
方法。在这种情况下,返回第一个元素的log.get(0)
将返回刚刚插入上面示例代码中的对象。
您还可以使用FOR-EACH LOOP
以迭代方式处理列表中的所有对象。以下是打印列表的示例:
for (LogEvidence evidence : log) {
System.out.println(evidence);
}