我创建了一个具有以下定义的类
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())
}
}
我是一名 C# 背景人员,我知道如何在 C# 中实现这一目标,但不知道如何在 Java 中实现这一目标,因此我需要这方面的帮助,如果您没有正确理解我的问题,请随时提出任何问题。
最佳答案
如果您想比较列表
内的对象
或仅使用contains
方法。
在您的 RegionsWithConstituency
对象中,您应该覆盖
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())
}
}
关于java - 查询对象的数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25580604/