如何从arraylist中的对象中提取特定数据

时间:2016-02-14 22:59:11

标签: java object arraylist

好的,不确定标题是否正确,但说我有三个对象,每个对象有两个数据字符串(比如说stateName和cityName)存储在arraylist中。是否可以作为字符串变量输入状态名称(称为searchStateName),然后通过方法搜索列表中的对象,并将searchStateName与arraylist中每个对象内的stateName进行比较,并在找到匹配项时让它返回与匹配的stateName在同一对象内的cityName吗?

我正在尝试做类似的事情,并希望自己弄清楚,但我在过去的一小时里一直在研究这个问题,而且我完全迷失了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

这是方法。假设您有一个名为SC的类,并且您有两个实例变量,以及它们的getter和setter。您需要在main中初始化它们的3个对象:

SC a = new SC("Illinois ","Chicago ");
SC b = new SC("Michigan ","Detroit");
SC c = new SC("New York"," New York");

然后创建ArrayList对象SC并将SC的这3个对象添加到该ArrayList。

ArrayList<SC> list = new ArrayList<SC>();
list.add(a);
list.add(b);
list.add(c);

现在调用搜索州名称的方法,如果找到则返回城市名称:

this.searchStateName("Illinois");

使用for-each循环实现此方法的实际操作:

public String searchStateName(String stateName){
 String result = "No city found.";
      for (SC sc : list )
         if (sc.getStateName().equalsIgnoreCase(stateName)){
          result = sc.getCityName();
          break;
        }
    }
 return result;
}

如果您对for-each循环感到不舒服,那么您可以使用下面的常规for循环。我是故意评论的。但它会正常工作,并为您提供正确的城市名称。

//public String searchStateName(String stateName){
// String result = null;
//      for (int i = 0; i < list.size(); i++){
//         if (list.get(i).getStateName() .equalsIgnoreCase(stateName)){
//          result = list.get(i).getCityName();
//          break;
//        }
//    }
// return result;
//}

就是这样。如果您需要进一步的帮助,请告诉我。