如果我知道某个成员的属性,我可以获得其余的属性吗?
我正在创建这样的成员:
ArrayList<Events> eventList = new ArrayList<Events>();
for (int i = 0; i < elist.length(); i++){
JSONObject e = elist.getJSONObject(i);
//store each item we want into a variable
String id = e.getString(TAG_id);
String event = e.getString(TAG_event);
String eventCity = e.getString(TAG_city);
//add the event
eventList.add(new Event(id, event.toUpperCase(), eventCity));
}
这是班级
public class Event {
private String id;
private String event_name;
private String city;
public Event(String i, String e, String c){
id = i;
event_name = e;
city = c;
}
public String getId(){
return id;
}
public String getEventName(){
return event_name;
}
public String getCity(){
return city;
}
public String toString(){
return event_name;
}
}
因此,如果我知道课程中的哪个事件,我可以获得Id和City吗?
我到目前为止唯一想到的是:
String show = eventList.get(1).toString();
但是,如果我不知道索引怎么办?
答案 0 :(得分:1)
以这种方式:
public String getEventById(List<Event> eventList, String id) {
for (Event event : eventList) {
if (event.getId().equals(id)) {
return event.getEvent();
}
}
return null;
}
答案 1 :(得分:0)
所以我认为你在理解各种数据结构方面遇到了一些麻烦。让我们看看我是否可以从简单开始。因此,给定一个Event实例,您可以获得以下各个字段:
Event evt = ...
System.out.println( evt.getEvent() );
System.out.println( evt.Id() );
System.out.println( evt.getCity() );
要获取各种字段,您有变量指向单个事件实例。现在看起来你有几个事件存储在ArrayList中。因此,您可能希望在所有事件中执行某些操作,在这种情况下,您需要遍历数组中的每个实例并执行以下操作:
for( Event evt : allEvents ) {
System.out.println( evt.getId() );
System.out.println( evt.getEvent() );
System.out.println( evt.getCity() );
}
这会打印出allEvents ArrayList中的所有事件。您还可以编写一个方法来根据给定的事件ID查找事件。
public Event findEvent( String id, List<Event> allEvents ) {
for( Event evt : allEvents ) {
if( evt.getId().equals(id) ) {
return evt;
}
}
return null;
}
然后像这样使用它:
Event evt = findEvent( "someID", allEvents );
System.out.println( evt.getId() );
System.out.println( evt.getCity() );
System.out.println( evt.getEvent() );