2012-02-11 89 views
3
ArrayList<yellowPage> ob1 = new ArrayList<yellowPage>(); 
yellowPage thing = new yellowPage(100,100); 
thing.calc(i,y,s3); 
ob1.add(thing); 

我在thing中存储了一些数据。我如何检索存储在ob1.thing中的值?如何检索存储在Java ArrayList中的对象值

+0

不相关,但是:Java命名约定,花花公子。 – m0skit0 2013-08-16 08:39:25

回答

10

如果你知道索引,你可以做黄页

yellowPage yp = ob1.get(index); 

否则,你需要遍历列表。

Iterator<yellowPate> iter = ob1.iterator(); 
while(iter.hasNext()) 
{ 
    yellowPage yp = iter.next(); 
    yp.whateverYouwantGet(); 
} 

注意:我只是在这里键入代码,可能会出现语法错误。

+1

无需演员。 – 2012-02-11 06:09:16

+0

如果我这样做,它显示为“yellowPage @ addbf1”的值;但我怎么能得到存储在该对象内的值?请帮助我阿米尔 – user768990 2012-02-11 06:27:47

+0

YellowPage类有什么,你需要在那里使用那个getter。你可以张贴黄页,并告诉你想访问什么价值? – kosa 2012-02-11 06:30:46

0

使用Iterator对象来执行此操作。

ArrayList<yellowPage> ob1 = new ArrayList<yellowPage>(); 
yellowPage thing = new yellowPage(100,100); 
thing.calc(i,y,s3);  
ob1.add(thing); 
yelloPage retrievedThing = null; 
Iterator<yelloPage> i = ob1.iterator(); 
if(i.hasNext()){ 
     retrievedThing = i.next(); 
} 
+0

将yellowPage对象作为“取回的东西”后,从中得到你想要的。 – 2012-02-11 06:19:41

0

你可以有存储在thing(可怕的命名变量)的数据只需从calc方法返回。这样你就不需要在以后的调用中保持以前的计算状态。否则,您只需要YellowPage类中的吸气剂类型方法。

public class YellowPage { 

    private int result; 

    public void calc(...) { 
     result = ... 
    } 

    public int getResult() { 
     return result; 
    } 

} 
1
int x=5; 
int info=ob1.get(x).getInfo(); 

上面的例子将在第六届指数让你从你的黄页类想要的任何信息(通过使用getter方法)(因为0计数)您的数组列表OB1的。这个例子假设你想要一个黄页的整数。您必须创建一个getter方法,并将x更改为要从中检索信息的黄页的索引。

一个例子getter方法(你应该把你的黄页类)看起来是这样的:

public int getInfo() { return z; } 

在上述情况下z可在您的黄页类的实例变量,包含的信息您正在寻找。你很可能不得不改变这个以适应你自己的情况。

如果您想从存储在数组列表中的所有黄页信息,那么你就需要来遍历它作为Chrandra Sekhar建议

-3
Class ArrayList<E> 

语法

ArrayList<Integer> list = new ArrayList<Integer>(); 

更换了“整型“与名单所属的班级相同。 在使用ensureCapacity操作添加大量元素之前,应用程序可以增加ArrayList实例的容量。这可能会减少增量重新分配的数量。 E表示一个元素,它可以是任何类。 ensureCapacity用于确保列表具有足够的容量来接受新元素。每次向列表添加新项目时都会调用它。顾名思义,ArrayList使用数组来存储项目。所以当数组被初始化时,它被赋予了一个任意的长度,比如10。现在一旦你添加了10个项目,如果你去添加第11个项目,它会崩溃,因为它超出了数组的容量。因此,ensureCapacity被称为(内部)以确保有足够的空间。因此,如果要添加第11个元素,则阵列大小可能会增加一倍,例如为20.

0

打印列表并覆盖toString方法。

public String toString() 
{ 
return (""+ a+b); //Here a and b are int fields declared in class 
} 

System.out.print(ob1);