在另一种方法中获取arraylist值

时间:2015-02-20 05:59:56

标签: java arraylist collections

这是我第一次在java中使用集合,这里我需要很少的指导来检索另一种方法中的组合arraylist对象。

//第一个方法getData()

while(rs.next())
    {         
     fetchValue=new NewClass();

     fetchValue.setCount(rs.getInt(1));
     fetchValue.setIp(rs.getString(2));


     data.add(fetchValue);

    }
return data;

//第二个方法get2Data()

while(rs.next())
    {         
     fetchValue1=new NewClass();

     fetchValue1.setCount(rs.getInt(1));
     fetchValue1.setIp(rs.getString(2));


     data1.add(fetchValue1);
    //System.out.println(data1);
    }
return data1;

//第三种方法printValue()

Query_One printValue=new Query_One();
   printValue.get2Data();
   printValue.getData();
   List arr=new ArrayList();
   arr.add(data);
   arr.add(data1);
//i was trying following method but it doesn't working.. 
 //for(int i=0;i<arr.size();i++)
  //{
      //System.out.println(arr.get(i).getCount());
  //}

这里我如何获得Count和Ip值?并且..我正在编写正确的编码吗? 请帮帮我。

3 个答案:

答案 0 :(得分:0)

Java中的集合获得了一个所谓的Generic,以确定您可以在集合所持有的对象上调用哪些方法。在你的Case中你得到标准类作为Generic,它将是Object(除了基本数据类型之外的所有类都从这个类扩展),所以你只能调用标准方法,如toString()或equals()。您应该将List的Generic设置为NewClass,如下所示:

List<NewClass> myList = new ArrayList();//After Java 1.7 with Diamond interface (no brackets at the construction)
List<NewClass> myList = new ArrayList<NewClass>();//Pre Java 1.7 without Diamond interface

我希望这会有所帮助:)

编辑:为了使它更简单,没有索引你也可以像这样使用for-each循环:

for(NewClass arrObject : arr){
    System.out.println(arrObject.getCount());
}

答案 1 :(得分:0)

在你的代码中,你试图访问arr.get(i)上的getCount()方法,但是arr.get(i)基本上是返回一个对象。所以你必须将其转换为NewClass,如下所示

for(int i=0;i<arr.size();i++)
{
    System.out.println(((NewClass)arr.get(i)).getCount());
}

然后你可以访问它的getCount()方法,因为它现在将在NewClass上调用,而不是在Object上调用。

答案 2 :(得分:0)

如果要在其他列表中添加列表,则应使用addAlladd是在列表对象中添加单个对象。

更改以下代码,

arr.add(data);
arr.add(data1);

arr.addAll(data);
arr.addAll(data1);