0

コンストラクターを介して作成されたオブジェクトを含むハッシュマップがあります。これらのオブジェクトはハッシュマップにあります

2 つの配列を比較する関数があります。1 つの配列は手動で作成されていますが、2 つ目の配列はメソッドを介して作成されています。ハッシュマップの値のみが必要です。

String[] checkOne= { "1.2:3,4:Brown", "1.1:5,4:Green" };

Map<String,RoundBrick> hashMap = new HashMap<String, RoundBrick>();

public void addBrick(RoundBrick roundBrick){
    hashMap.put(roundBrick.getRef, roundBrick)
}

checkBrick(getBricks(), one){
...
}

public static boolean checkBrick(Brick[] brick, String[] checkOne){
...
}    

私が立ち往生しているのは、この方法です...

public Brick[] getBricks(){

オブジェクトをハッシュマップから配列に変換して、2 つの配列の内容を比較するにはどうすればよいですか? 私は行くことができます...

public Brick[] getBricks() {   
Brick[] bricks = {hashmap.value().toArray()};   
return bricks;    
}

しかし、これはObject []からBrickに変換できないというエラーを出します

  • .toArray() を取り出すと、「Collection< RoundBrick > から Brick に変換できません」というメッセージが表示されます
  • .toArray() を .toString() に変更すると、「文字列からブリックに変換できません」というメッセージが表示されます

メソッドを次のように変更すると...

public Brick[] getBricks() {
    String a = Arrays.toString(hashmap.values().toArray());
    return a;
}

「a」で表示されるエラーは、「文字列からブリック [] に変換できません」です。

以下の行を追加すると、配列が出力されます。

System.out.print(hashmap.values());

[1.2:3,4:Brown, 1.1:5,4:Green]

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

3
public Brick[] getBricks() {   
    return hashmap.values().toArray(new Brick[0]);   
}
于 2012-06-29T19:10:02.497 に答える