java - 在二维ArrayList中查找某个值/元素

标签 java android arraylist

我有一个二维数组列表

List<List<String>> movies_info = new ArrayList<>();

我填充创建新行

movies_info.add(new ArrayList<String>());

并添加元素

movies_info.get(i).add(title);

。 我希望能够检查我要添加的元素是否已存在于整个 ArrayList 中。不使用下面的for.loop是否可以达到这个结果?

boolean found = false;
for (int i = 0; i < movies_info.size(); i++) {
    if(movies_info.get(i).contain(title)) {
    found = true;
}
if (!found) {
    movies_info.add(new ArrayList<String>());
    movies_info.get(i).add(title);
}

最佳答案

您可以将第二个 ArrayList 替换为 HashMap并检查它是否已经存在。

movies_info.add(new HashMap<String,String>());

if (!movies_info.get(i).containsKey(title)){
    movies_info.get(i).put(title,title);
}

HashMap 中搜索键以及添加新元素都具有恒定的时间复杂度O(1)

要稍后获取值,您可以使用此代码

for (String title : movie_info.get(i).keySet()){
      // Use title
}

关于java - 在二维ArrayList中查找某个值/元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35370157/

相关文章:

android - 如何在滚动(分页)期间将新数组列表连接到现有数组列表并显示给 recyclerview android

java - TouchListener 正在覆盖 ClickListener

java - 在 Java 中存储、检索和比较日期的最佳方式

java - Drop 事件在 SWT 中发生多次

java - 为什么我的代码无法在 java 多线程中运行多个客户端?

android - 根据 Activity (即可见) fragment 以编程方式启用或禁用按钮

java - 将列表添加到二维 ArrayList

java - 如何向列表中存储的名称(如果重复)添加序列

java - 从死信 channel 重新传递消息

java - 创建的pom.xml在哪里