我有
[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。 所以我需要知道哪种数据结构对此有用。以及如何实施?
答案 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类型int
和String
- 你可以用完全相同的方式包装任何类型的Object 。
一旦对象为initialized(实例化),您就可以设置并获取这些值。
TestObject obj = new TestObject();
obj.setId(1);
obj.setName("George");
重获价值观:
String name= obj.getName();
int id=obj.getId();
在您的情况下,您可以在这样的对象(POJO)中包含三个值,然后您可以在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();
}