使用自己的数据类型(Java)映射

时间:2010-10-27 15:02:45

标签: java hashmap

Map<String,MyData>  map = new HashMap<String,MyData>();
...
static class MyData {
  String theString;
  Bitmap theBitmap;
  int theInt;
  ...
}

如何将数据放入此地图???

map.put("xxx", new MyData()); // Does not work

谢谢;)


对不起,我提出了错误的问题;)

我怎么能在...中写dada?

喜欢theString =“aaa”,theInt = 22等......

由于

4 个答案:

答案 0 :(得分:1)

Map<String,MyData>  map = new HashMap<String,MyData>();
...
class MyData {
  String theString;
  Bitmap theBitmap;
  int theInt;
  ...
}

看看这是否更好。

答案 1 :(得分:1)

当然有效:

import java.util.*;

public class Test {

    static class MyData {
        String theString;
        byte[] theBitmap;
        int theInt;
    }

    public static void main(String... args) {
        Map<String,MyData>  map = new HashMap<String,MyData>();
        map.put("xxx", new MyData());

        System.out.println(map);
    }
}

编译好,并打印:

{xxx=Test$MyData@3ae48e1b}

答案 2 :(得分:1)

也许你想这样做:

MyData someData = new MyData();
someData.theString = "toto";
someData.theString = 1;
map.put("xxx", someData);
someData = new MyData();
someData.theString = "tutu";
someData.theString = 2;
map.put("xxx", someData);

答案 3 :(得分:0)

基于你的评论(呃......回答?)我猜你忘了给MyData类添加一个构造函数。

构造函数应该类似于:

  public MyData(String str, Bitmap bmap, int val)
  {
     // assign the the instnace values and whatever else you neeed to do.
  }

但是,在提出此类问题时,请提供错误消息的文字,以便我们不必猜测给您答案。此外,如果您对问题进行了更改,请将其置于问题中,不要回复(stackoverflow并未真正用作讨论板: - )