我创建了一个具有以下定义的类
public class RegionsWithConstituency {
String reg_name;
String const_name;
public void setRegionName(String reg_name)
{
this.reg_name = reg_name;
}
public String getRegionName()
{
return reg_name;
}
public void setConstituencyName(String const_name)
{
this.const_name = const_name;
}
public String getConstituencyName()
{
return const_name;
}
@Override
public String toString()
{
return const_name;
}
}
我填写了这个课程如下:
ArrayList<RegionsWithConstituency> region = new ArrayList<RegionsWithConstituency>();
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
RegionsWithConstituency reg = new RegionsWithConstituency();
reg.setRegionName(jsonObject.optString("Region"));
reg.setConstituencyName(jsonObject.optString("Constituency"));
region.add(reg);
}
我想根据区域名称找到选区名称,并将结果保存到String的ArrayList中。一个例子就是那样的
for (int i = 0; i < region.length(); i++) {
if (regionList.Contains(region)){
listofString.add(region.getConstituencyName())
}
}
我是ac #background,我知道如何在c#中实现这个,但不是在java中,所以我需要一个帮助,如果你没有正确解决我的问题,请随时提出任何问题。
答案 0 :(得分:1)
您需要为区域创建一个get函数,并执行以下操作。这是工作代码
Iterator<RegionsWithConstituency> it=region.iterator();
while(it.hasNext()){
RegionsWithConstituency obj = it.next();
if(obj.getRegionName().equals("Region"))
{
String Constituency=obj.getConstituencyName();
listofString.add(Constituency);
//do whatever u wanted to do with it now
}
}
答案 1 :(得分:1)
如果您想比较objects
内的list
或仅使用contains
方法。
在RegionsWithConstituency
对象中,您应该override
equals
和hashcode
方法。
@Override
public boolean equals(Object obj) {
// TODO Auto-generated method stub
if (this == obj)
return true;
if (obj == null || (this.getClass() != obj.getClass())) {
return false;
}
RegionsWithConstituency reg = (RegionsWithConstituency) obj;
return this.const_name.equals(reg.getConstituencyName())
&& this.reg_name.equals(reg.getRegionName());
}
@Override
public int hashCode() {
// TODO Auto-generated method stub
return const_name != null ? const_name.hashCode() : 0;
}
并检查它是否包含对象
for (int i = 0; i < region.length(); i++) {
if (regionList.Contains(region)){
listofString.add(region.get(i).getConstituencyName())
}
}