3

我有

[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。所以我需要知道哪种数据结构对此有用。以及如何实施?

4

1 回答 1

3

在java中,很容易将这三个值包装在一个对象中。

例如:

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 类型的对象,它包含两个值(两个原始类型intString- 您可以以完全相同的方式包装任何类型的对象)。一旦对象被初始化(实例化),您就可以设置和获取这些值。

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

取回价值:

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

在您的情况下,您可以将这三个值包含在这样的 Object (POJO)中,然后您可以在Collection中包含很多这些 Objects 。ArrayList是一种简单有效的 IMO 集合类型,尽管这不是限制性的。

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

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

您可以通过像这样循环从列表中检索对象:

for(TestObject x:list){
  int id=x.getId();
  String name=x.getName();
}
于 2013-10-24T05:53:22.967 回答