如何在对象列表中推送值?
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);
}
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);
}