Java中有一个集合需要按照对象中的字段A作为key对应元素的下标作为value得到一个map集合若是有重复的key则忽略只保存第一个取到的下标
可以使用HashMap来实现这个需求。遍历集合中的元素,判断对象中的字段A是否已经在HashMap中存在,如果不存在,则将字段A作为key,对应元素的下标作为value放入HashMap中。如果存在重复的key,则不做任何操作。最后得到的HashMap就是所需的结果。
以下是一个示例代码:
import java.util.*;
public class Main {
public static void main(String[] args) {
List<MyObject> list = new ArrayList<>();
list.add(new MyObject("key1"));
list.add(new MyObject("key2"));
list.add(new MyObject("key1"));
list.add(new MyObject("key3"));
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < list.size(); i++) {
MyObject obj = list.get(i);
String key = obj.getFieldA();
if (!map.containsKey(key)) {
map.put(key, i);
}
}
System.out.println(map);
}
}
class MyObject {
private String fieldA;
public MyObject(String fieldA) {
this.fieldA = fieldA;
}
public String getFieldA() {
return fieldA;
}
public void setFieldA(String fieldA) {
this.fieldA = fieldA;
}
}
运行结果:
{key1=0, key2=1, key3=3}
可以看到,重复的key "key1" 只保存了第一个取到的下标 0
原文地址: https://www.cveoy.top/t/topic/iFpN 著作权归作者所有。请勿转载和采集!