我有一个hashmap,它包含一个arraylist作为值。我想检查其中一个ArrayList是否包含一个对象,然后从ArrayList中移除该对象。但是,怎么做?
我尝试过使用一些for循环,但是我得到了一个ConcurrentModificationException,并且我无法消除该异常。
java prettyprint-override">HashMap<String,ArrayList<UUID>> inareamap = new HashMap<String, ArrayList<UUID>>();
我已经试过了:
for (ArrayList<UUID> uuidlist : inareamap.values()) {
for (UUID uuid : uuidlist) {
if (uuid.equals(e.getPlayer().getUniqueId())) {
for (String row : inareamap.keySet()) {
if (inareamap.get(row).equals(uuidlist)) {
inareamap.get(row).remove(uuid);
}
}
}
}
}
有一种更优雅的方法可以实现,即使用Java8:
Map<String, ArrayList<UUID>> map = ...
UUID testId = ...
// defined elsewhere
// iterate through the set of elements in the map, produce a string and list for each
map.forEach((string, list) -> {
// as the name suggests, removes if the UUID equals the test UUID
list.removeIf(uuid -> uuid.equals(testId));
});
我有一个假设,它有8个项目A-H,现在我想从中删除存储在int数组中的1,3,5位置项目。我该怎么做。 我正试着和你一起做这件事 但在数组的第一个被删除的项被更改之后,在下一次迭代中它删除了错误的元素或给出异常。
问题内容: 我有一个字符串数组列表,并在其中添加了一些重复值。我只想删除那个重复的值,那么如何删除它。 在这个例子中我有一个主意。 但是有没有足够的方法来删除该重复表格列表。没有使用For循环?我可以通过使用HashSet或其他方式来做到这一点,但只能使用数组列表。想对此提出您的建议。谢谢您的提前答复。 问题答案: 您可以从列表中创建一个。在将包含每个元素只有一次,在相同的顺序。然后从创建一个新的
所以我有一个看起来像这样的文件: 其中我希望第一列是hashmap的键(e1,或e2,或e3),值是一个名为“ratings”的ArrayList,我希望第二列的值(int)位于ArrayList的第n个索引中。 总而言之:文件第一列中的每个字符串在hashmap(userList)中都有自己的键,程序将检查它是否有这个键,如果没有键,它将创建一个新的arraylist作为这个键的值。arrayL
问题内容: 如果满足条件,我需要从中删除一些对象,我想知道哪种方法会更有效。 情况如下:我有一个包含包含其他一些对象的类。我必须对此进行迭代,并删除满足特定条件的所有元素。据我所知,这些是我要删除的选项: 创建一个新的并添加不符合条件的元素。迭代之后,从旧的数组列表交换到没有元素的新数组列表。 创建一个新的并添加满足条件的元素。迭代后,使用传递要删除对象的方法。 有没有更有效的方法从中删除对象?
我有一个程序,它从文件中获取输入,将文件中的每个单词保存为令牌,然后将每个令牌添加到数组列表中。 问题是arrayList出现了例如[“cat”,“dog”,“”,“”,“bird”],我不想在arrayList中出现空格。 总之,我的代码如下: 应该会删除空格,我已经通过从非文件数组列表中删除空格进行了测试。奇怪的是,如果我将其更改为,它将从ArrayList中删除cat。
我有一个具有重复值的地图: 我想在地图上有 你知道如何去掉重复的值吗? 目前,我收到'java.util.ConcurrentModificationException'错误。 谢谢。