哪种数据结构适合存储三个相关值?以及如何实施?

时间:2013-10-24 05:43:36

标签: java arrays data-structures

我有

[0][11011] = 0.7; 
[32][11101] = 0.3

第一个值是整数位置,第二个唯一字符id,第三个值是此结构本身的值。 哪种数据结构适合存储三个值?


假设我有set1:

[0][11111] = 0.5; 
[16][11110] = 0.5; 
[32][11011] = 0.5; 
[48][10111] = 0.5; 

And I have set2 
[0][11011] = 0.7; 
[1][11101] = 0.3

我想从set1中获取set2 11011搜索的字符串值,如果它匹配例如位置32,则分配给该结构值0.7而不是0.5。 所以我需要知道哪种数据结构对此有用。以及如何实施?

1 个答案:

答案 0 :(得分:3)

在java中,很容易将这三个值包装在Object中。

例如:

public class TestObject {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

}

这里有一个类型为TestObject的Object,它包含两个值(两个primitive类型intString - 你可以用完全相同的方式包装任何类型的Object 。 一旦对象为initialized(实例化),您就可以设置并获取这些值。

TestObject obj = new TestObject();
obj.setId(1);
obj.setName("George");

重获价值观:

String name= obj.getName();
int id=obj.getId();

在您的情况下,您可以在这样的对象(PO​​JO)中包含三个值,然后您可以在Collection中包含大量这些对象。 一个简单有效的收集类型IMO是ArrayList,虽然这不是限制性的。

您可以像ArrayList这样添加对象:

java.util.ArrayList<TestObject> list = new ArrayList<TestObject>();
list.add(obj);

您可以通过循环检索列表中的对象:

for(TestObject x:list){
  int id=x.getId();
  String name=x.getName();
}