HashSet melaksanakan antara muka Set dan disokong oleh jadual cincang (sebenarnya HashMap), tetapi tidak menjamin susunan lelaran set dan membenarkan penggunaan daripada unsur null. Kerumitan masa HashSet adalah sama dengan HashMap Jika tiada konflik cincang, kerumitan masa ialah O(1) Jika terdapat konflik cincang, kerumitan masa tidak melebihi O(n). Oleh itu, dalam pengekodan harian, anda boleh menggunakan HashSet untuk menentukan sama ada kunci utama wujud.
Kes: Diberi rentetan (tidak semestinya semua huruf), sila kembalikan aksara berulang pertama.
/** 查找第一个重复字符 */public static Character findFirstRepeatedChar(String string) { // 检查空字符串 if (Objects.isNull(string) || string.isEmpty()) { return null; } // 查找重复字符 char[] charArray = string.toCharArray(); Set charSet = new HashSet<>(charArray.length); for (char ch : charArray) { if (charSet.contains(ch)) { return ch; } charSet.add(ch); } // 默认返回为空 return null; }
Antaranya, kerana fungsi tambah Set mempunyai ciri-jika elemen tambahan sudah wujud dalam set, ia akan kembali palsu. Kod boleh dipermudahkan sebagai:
if (!charSet.add(ch)) { return ch; }
Atas ialah kandungan terperinci Cara menggunakan HashSet dalam java untuk menentukan sama ada kunci utama wujud. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!