[英]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.