1

I have a class:

sample.java

class sample

int val;
String str;

constructor

sample(String str,int val)

str=this.str;

val=this.val

test.java

ArrayList<sample> lst=new ArrayList<sample>();

lst.add(new sample("somedata",33)):

lst.add(new sample("somedata",33)):

send(lst) sending arraylist obj over a network.but i was wondering how i can print the values in the arraylist. I tried using iterator but it is only showing object references.

4

5 に答える 5

4

toStringクラスでメソッドをオーバーライドしますsample。あなたが使用することができます:

@Override
public String toString() {
  return "str=" + str + " val=" + val;
}
于 2012-11-02T22:43:58.387 に答える
3

この問題の最も簡単な解決策:クラスにtoStringメソッドを実装します。sample

@Override
public String toString() {
  return str + ", " + val;
}

次に、各インスタンスのフィールド値を取得します。

それ以外の場合: ループからフィールドにアクセスします。

for (sample s:lst) {
  System.out.println(s.str + ", " + s.val);
}
于 2012-11-02T22:44:36.903 に答える
2

クラスのtoString()メソッドをオーバーライドする

public String toString(){
return str+"," + value;
}

Iterator<Sample> itr = lst.iterator();
while(itr.hasNext()){
system.out.println(itr.next().toString());
}
于 2012-11-02T22:44:17.530 に答える
1

大文字で始まるクラス名を使用してください。また、コンストラクターが間違っています。

sample(String str,int val) {

this.str=str;

this.val=val

}
于 2012-11-02T23:21:17.697 に答える
0

toString を実装すれば、オブジェクトを出力するだけであれば問題ありません。

于 2012-11-02T22:45:05.627 に答える