这是我第一次在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值?并且..我正在编写正确的编码吗? 请帮帮我。
答案 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)
如果要在其他列表中添加列表,则应使用addAll
。
add
是在列表对象中添加单个对象。
更改以下代码,
arr.add(data);
arr.add(data1);
到
arr.addAll(data);
arr.addAll(data1);