从方法返回数组以从hashmap获取对象 - java

时间:2012-06-29 19:04:34

标签: java arrays methods hashmap

我有一个包含通过构造函数创建的对象的hashmap。 这些对象位于hashmap

我有一个比较两个数组的函数。一个数组已手动创建,但第二个数组是通过方法创建的。我只需要hashmap中的值。

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(){

如何将对象从hashmap转换为数组,以便比较两个数组的内容? 我可以去......

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

但这会给出错误,说不能从Object []转换为Brick

  • 如果我把.toArray()拿出来,我会得到一个“无法从Collection&lt; RoundBrick&gt;转换为Brick”
  • 如果我将.toArray()更改为.toString(),我会得到“无法从String转换为Brick”

如果我将方法更改为以下内容......

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

我在“a”上遇到的错误是“无法从String转换为Brick []”

当添加下面的行时,它会打印出数组。

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

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

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

public Brick[] getBricks() {   
    return hashmap.values().toArray(new Brick[0]);   
}