可以使用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

Java中有一个集合需要按照对象中的字段A作为key对应元素的下标作为value得到一个map集合若是有重复的key则忽略只保存第一个取到的下标

原文地址: https://www.cveoy.top/t/topic/iFpN 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录