HashSet implémente l'interface Set et est pris en charge par une table de hachage (en fait une HashMap), mais ne garantit pas l'ordre d'itération de l'ensemble et permet l'utilisation d'éléments nuls. La complexité temporelle de HashSet est la même que celle de HashMap. S'il n'y a pas de conflit de hachage, la complexité temporelle est O(1). S'il y a un conflit de hachage, la complexité temporelle ne dépasse pas O(n). Par conséquent, dans le codage quotidien, vous pouvez utiliser HashSet pour déterminer si la clé primaire existe.
Case : Étant donné une chaîne (pas nécessairement toutes les lettres), veuillez renvoyer le premier caractère récurrent.
/** 查找第一个重复字符 */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; }
Parmi eux, parce que la fonction d'ajout de Set a une caractéristique : si l'élément ajouté existe déjà dans l'ensemble, il retournera false. Le code peut être simplifié comme suit :
if (!charSet.add(ch)) { return ch; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!