電子書籍の厳選無料作品が豊富!

以下のように記述されたコードで
他クラスからこのクラスのインスタンスを生成して
tempMapのkeyとValueを抜き出したいのですが
なにか良い方法ありますでしょうか?
宜しくお願いします。

public class TestListMap {

protected List list = null;
private Map tempMap = null;

public TestListMap(){

list = new ArrayList();

for(int i=0; i < 10; i++ ){
tempMap = new HashMap();
tempMap.put("NO", "00" + i);
tempMap.put("TYPE", "AAA" + i);


if (i % 2 == 0 | i % 3 == 0) {
tempMap.put("FLG", "1");
} else {
tempMap.put("FLG", "0");
}
list.add(tempMap);
}
}


public List getListMap(){
return list;
}
}

A 回答 (4件)

#3です。



すみません。よくみたら、先ほどのソースも違ってました。

TestListMap tlm = new TestListMap();
List list = tlm.getListMap();
for(int i = 0 ; i < list.size() ; i++){
 Map map = (Map)list.get(i);
 Set keyset = map.keySet();
 Iterator it = keyset.iterator();
 System.out.print("index=" + i);
 while(it.hasNext()){
  Object key = it.next();
  System.out.print("key=" + key);
  System.out.println(" value=" + map.get(key));
 }
}


これで、全部取得できるはずです。
    • good
    • 0
この回答へのお礼

どうもありがとうございました!
バッチリ望んだ結果が得られました。

お礼日時:2004/08/04 07:42

すみません。

間違いがありました。

正しくは、

TestListMap tlm = new TestListMap();
List list = tlm.getListMap();  //修正
Map map = (Map)list.get(0);   //追加
Set keyset = map.keySet();
Iterator it = keyset.iterator();
while(it.hasNext()){
 Object key = it.next();
 System.out.print("key=" + key);
 System.out.println(" value=" + map.get(key));
}
    • good
    • 0

このソースでは、



list.add(tempMap);

の部分で、tempMapオブジェクトそのものを、listに追加しています。

従って、getListMap()を実行すれば、tempMapオブジェクトが取得できるはずです。

その後にkeySet()を実行すればいいと思います。

つまり、

TestListMap tlm = new TestistMap();
Map map = (Map)tlm.getListMap(0);
Set keyset = map.keySet();
Iterator it = keyset.iterator();
while(it.hasNext()){
 Object key = it.next();
 System.out.print("key=" + key);
 System.out.println(" value=" + map.get(key));
}

ということです。

この回答への補足

ありがとうございます。
早速試してみたのですが、

ListはMapにキャストできません
と表示されエラーになってしまいました。

補足日時:2004/08/03 07:09
    • good
    • 0

keySet()を使えば簡単に取れると思いますよ

この回答への補足

ありがとうございます。
この状態で他クラスからtempMapの要素を抜き出そうと
したのですが修飾子がprivateなので
できないのです。
継承してもダメみたいだし、
getListMapメソッドを使えばListに入っている
要素は抜き出せるのですが、
keyとValueを別々に抜き出したいのですが、
なにか方法はありますでしょうか?
TestListMapクラスは変更できません。
宜しくお願いします。

補足日時:2004/08/01 11:04
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!