Java 在另一个方法中获取arraylist值
这是我第一次在java中使用collection,在这里我需要一些指导来用另一种方法检索组合的arraylist对象 //第一种方法是获取数据Java 在另一个方法中获取arraylist值,java,arraylist,collections,Java,Arraylist,Collections,这是我第一次在java中使用collection,在这里我需要一些指导来用另一种方法检索组合的arraylist对象 //第一种方法是获取数据 while(rs.next()) { fetchValue=new NewClass(); fetchValue.setCount(rs.getInt(1)); fetchValue.setIp(rs.getString(2)); data.add(fetchValue);
while(rs.next())
{
fetchValue=new NewClass();
fetchValue.setCount(rs.getInt(1));
fetchValue.setIp(rs.getString(2));
data.add(fetchValue);
}
return data;
//第二种方法是获取2data
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;
//第三种方法打印值
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());
//}
这里如何获取计数和Ip值?和我写的代码正确吗?
请帮帮我。Java中的集合获得一个所谓的泛型,以确定您可以对集合中的对象调用哪些方法。在您的例子中,您将标准类作为泛型对象,它将是除基本数据类型之外的所有类都从该类扩展而来的对象,因此您只能调用标准方法,例如toString或equals。您应该将列表的泛型设置为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(NewClass arrObject : arr){
System.out.println(arrObject.getCount());
}
在代码中,您试图访问arr.geti上的getCount方法,但该arr.geti基本上返回了一个对象。因此,您必须按如下方式将其转换为NewClass
for(int i=0;i<arr.size();i++)
{
System.out.println(((NewClass)arr.get(i)).getCount());
}
然后您可以访问它的getCount方法,因为它现在将在NewClass而不是Object上调用。如果您要在另一个列表中添加列表,您应该使用addAll。 添加是在列表对象中添加单个对象 更改以下代码
arr.add(data);
arr.add(data1);
到
所有三个方法都放在同一个类中哦,很抱歉,第二行的第一个括号中也必须是NewClass。我会编辑我的答案…但是是的,我只有两行,因为它在java版本1.7中发生了更改,我不知道您使用的是哪个版本。只需使用其中一行初始化列表,就可以在listobjects上调用类的方法
arr.addAll(data);
arr.addAll(data1);