繁体   English   中英

将一个数组列表中的值引用到另一个数组中的值

[英]Referencing the values in one array list to values in another

Java中是否存在一种数据结构,其中一个ArrayList中的值可用于引用另一个数组中的值? 例如:

DataStructure<ArrayList<String>, ArrayList<String>> ds = new DataStructure<ArrayList<String>, ArrayList<String>>();

目的是让我以后可以遍历数据结构并获得两个值。 例如:

for(int i=0; i<ds.size(); i++) {

     String val1 = ds.get(i).getIndex1().getArrayListValueAt(i);
     String val2 = ds.get(i).getIndex2().getArrayListValueAt(i);

}

我知道这看起来很奇怪,但是我很难想象。

PS确保两个数组列表中的索引相同并只是循环遍历会更容易,而当一个被获取时,在另一个数组中引用相同的索引。 例如:

int i = 0;
for(String value : values) {
      String val1 = value;
      String val2 = list2.get(i);
      i++;
}

谢谢。

我认为出于您的目的, Map结构将更适合。 这是一本字典,所以一个值是键,另一个是键值。

Map<String, String> ds = new HashMap<>();

然后循环并访问值,可以像这样使用其keySet()方法。

for (String k : ds.keySet()) {
    String key = k;
    String value = ds.get(k);
}

并将新的键/值对添加到数据结构中,请使用put(k, v)方法。

ds.put("thisIsAKey", "thisIsTheValue");

不知道我是否理解正确,听起来您想要一个列表,列表中的每个元素都将包含一对值。 下面的解决方案会有所帮助吗?

//一个包含两个值的类

class MyPair {
    String val1;
    String val2;
}

//然后您将列出..

List<MyPair> myList = new ArrayList();

//当您循环列表时...就像下面的内容

for(MyPair mypair : myList) {
     String val1 = mypair.val1;
     String val2 = mypair.val2;
}

您可以使用例如Map来解决问题,因为您可以将所有需要的集合存储在一个地方

Map<String, List<String>> map = new HashMap<>();

或例如:

Map<List<String>, List<String>> map = new HashMap<>();

然后,您可以将String作为键,将List<T>作为值

非常重要的一点是您将哪个对象用作键,因为它必须具有equals / hashCode(如果是您的对象,则必须是@Override ),接下来,当该对象是不可变的时,效果很好

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM