如何在对象列表中推送值?

How to push value in List of Object?

Java项目在进行中出现问题,所以我提出了一个问题。

例如,假设我们在Java脚本中有这个对象。

let testObject = {
   'Fruit' : [],
   'Food': []
}

我可以给食物数组加一个值。

testObject['Fruit'].push('tomato');
testObject['Food'].unshift('ramen');

像java脚本一样,java直接将值推送到对象列表。

        HashMap<String, ArrayList<String>> testObject = new HashMap<>();
        testObject.put("Food",new ArrayList<>());
        testObject.put("Fruit",new ArrayList<>());
        for(T etc : testObject...){
            if(etc...equals("Fruit")){
                etc..add('tomato');
            }else if(etc..equals("Food")){
                etc..add('ramen');
            }
        }

除了通过引用调用提前声明ArrayList,然后放到testObject中,还有什么办法吗?

从 java 8+ 开始,您可以尝试这样的操作:

Map<String, Collection<String>> food = new HashMap<>();

// ... any code ...

food.computeIfAbsent("fruits", k -> new ArrayList<String>()).add("apple");

假设键存在于映射中

testObject.get("Fruit").add("tomato")

假设映射中可能不存在键

    public static void main(String[] args) {
        Map<String, List<String>> testObject = new HashMap<>();
        testObject.put("A", new ArrayList<>());
        testObject.get("A").add("tomato");
        testObject.computeIfAbsent("B", k -> new ArrayList<>()).add("tomato");
        System.out.println(testObject);
    }