首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 集合查找:使用 ArrayList.contains() 快速判斷字符串是否存在

     編輯:程式設計疑難解答

Java 集合查找:使用 ArrayList.contains() 快速判斷字符串是否存在

需求:將用戶新輸入的字符串與集合中現有元素逐一比對,若不存在則添加。Java ArrayList 內置 contains() 方法已完美支持此場景。

核心原理

contains(Object o) 內部遍歷數組,調用 o.equals(element) 比較。對於 String,equals() 比較的是字符序列內容,而非引用地址,完全滿足業務需求。

完整示例

import java.util.ArrayList;
import java.util.Scanner;

public class StringCollectionDemo {
    public static void main(String[] args) {
        ArrayList list = new ArrayList<>();
        list.add("I");
        list.add("am");
        list.add("LiLei");

        Scanner sc = new Scanner(System.in);
        System.out.print("請輸入字符串: ");
        String input = sc.nextLine();

        if (!list.contains(input)) {
            list.add(input);
            System.out.println("已添加: " + input);
        } else {
            System.out.println("已存在: " + input);
        }
        System.out.println("當前集合: " + list);
    }
}

進階注意事項

  • 大小寫敏感:"Hello" != "hello"。若需忽略大小寫,可統一轉小寫存儲/比較,或使用 List 搭配 stream().anyMatch(s -> s.equalsIgnoreCase(input))。
  • 自定義對象:若集合存儲自定義類,必須重寫 equals() 和 hashCode(),否則 contains() 仍按引用比較。
  • 性能:ArrayList.contains() 為 O(n) 線性查找。若數據量大(>10^4)且頻繁查找,建議改用 HashSet(O(1) 平均)。

善用集合框架 API,避免手寫循環比較,代碼更簡潔、可讀性更強。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved