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

3

I have

[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

我希望从set2中获取字符串值11011,然后在set1中查找是否匹配,例如在位置32匹配,则将该结构的值分配为0.7而非0.5。 因此,我需要知道哪种数据结构对此有用。以及如何实现?

3
请查看Java教程中的这个页面,以获取一个示例实现。 - Keppil
1
这个集合需要什么要求? - Lior Ohana
第一个值是整数值索引,就像在数组中一样。 第二个值是唯一的字符串ID。最后一个是数字值。 我将有两个类似的结构。稍后我想获取字符串ID并在类似于[int] [11111]格式的数组中搜索。 因此,如果字符串模式匹配,我希望将某个值分配给该数组。 - Sergey
在检索值时,您将使用什么值?索引还是字符串?或者两者都用? - Sachin Gorade
我编辑了我的问题并添加了示例。字符串值我将用作另一个set2中的查询。如果该字符串与set2中的另一个字符串匹配,则我将从当前集合中检索到的值分配给该set2实例。 - Sergey
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();

在你的情况下,你可以像这样(POJO)将三个值包含在一个对象中,然后可以在集合中包含许多这些对象。 在我看来,一种易于使用和高效的集合类型是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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接