[英]compare and update two arraylist java android
我有一個兩個數組列表,在單個索引處有多個值。 我正在添加如下值:
ArrayList<String> list1 = new ArrayList<String>();
list1.addAll(Arrays.asList("iFRa1wVJ","Breakfast","7:00am","8:30am"));
list1.addAll(Arrays.asList("JyvmCZhw","Lunch","1:00pm","3:00pm"));
list1.addAll(Arrays.asList("HR6ovPjE","Dinner","7:30pm","9:30pm"));
ArrayList<String> list2 = new ArrayList<String>();
list2.addAll(Arrays.asList("iFRa1wVJ","Breakfast1","9:00am","10:30am"));
list2.addAll(Arrays.asList("JyvmCZhw","Lunch","2:00pm","3:00pm"));
list2.addAll(Arrays.asList("HR6ovPjE","Dinner","8:30pm","9:30pm"));
預期結果如下:
iFRa1wVJ,Breakfast,7:00am,8:30am --> Breakfast1 is overwriiten as Breakfast from list1
JyvmCZhw,Lunch,1:00pm,3:00pm --> 2:00pm is overwriiten as 1:00pm from list1
HR6ovPjE,Dinner,7:30pm,9:30pm --> 8:30pm is overwriiten as 7:30pm from list1
我需要比較每個索引的值,並使用第一個列表的值更新第二個列表。 如何比較每個索引中的列表。 任何幫助將不勝感激。 謝謝。
聽起來好像你最好使用Map
或Set
而不是List。 例如:
class Meal {
//You may want to store times in a different format, i.e. a long in millisecond
private final String name, startTime, endTime;
Meal(String name, String startTime, String endTime) {
this.name = name;
this.startTime = startTime;
this.endTime = endTime;
}
//getName(), getStartTime(), getEndTime()...
}
在你的地圖上......
final Map<String, Meal> map = new HashMap<>();
map.put("iFRa1wVJ", new Meal("Breakfast","7:00am","8:30am"));
map.put("iFRa1wVJ", new Meal("Breakfast","9:00am","10:30am"));
第二個“早餐”將取代第一個,因為他們共享相同的密鑰。
您希望在每個索引處有兩個具有多個值的數組列表,但在原始代碼中, ArrayList<String>
只是一個在每個索引處具有單個String
對象的數組。 所以我改變了數據結構以保存String
的列表。 如果您真正想要做的就是使用list1
的相應索引處的值更新每個索引,您只需更新索引處的所有內容即可。
ArrayList<List<String>> list1 = new ArrayList<List<String>>();
list1.add(Arrays.asList("iFRa1wVJ", "Breakfast", "7:00am", "8:30am"));
list1.add(Arrays.asList("JyvmCZhw", "Lunch", "1:00pm", "3:00pm"));
list1.add(Arrays.asList("HR6ovPjE", "Dinner", "7:30pm", "9:30pm"));
ArrayList<List<String>> list2 = new ArrayList<List<String>>();
list2.add(Arrays.asList("iFRa1wVJ", "Breakfast1", "9:00am", "10:30am"));
list2.add(Arrays.asList("JyvmCZhw", "Lunch", "2:00pm", "4:00pm"));
list2.add(Arrays.asList("HR6ovPjE", "Dinner", "8:30pm", "9:30pm"));
for (int i = 0; i < list1.size(); i++) {
list2.set(i, list1.get(i));
}
System.out.println(list1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.