查询对象的数组列表

时间:2014-08-30 08:41:19

标签: java object arraylist

我创建了一个具有以下定义的类

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中,所以我需要一个帮助,如果你没有正确解决我的问题,请随时提出任何问题。

2 个答案:

答案 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 equalshashcode方法。

@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())
  }
}