java判断集合是否重复用什么符号关键字

Python015

java判断集合是否重复用什么符号关键字,第1张

方法1:

利用Set集合来实现

字符中的每个字符依次存入Set集合中,Set集合会自动剔除重复元素

判断Set集合的元素个数是否等于字符串的长度,若相等,则字符串中没有重复的字符。否则,字符串中存在重复的字符。

Code:

public static boolean isunique(String s) {

Set set = new HashSet()

char[] chars = s.toCharArray()

for(char c:chars) {

set.add(c)

}

return (set.size()==s.length())

}

方法2:

将字符串转化为字符数组。

对于每个字符,从字符串的开头检索,得到索引号index1

从字符串的末尾开始索引,得到索引号index2

判断index1是否等于index2

若相等,则字符串中不含重复字符。否则,字符串中含有重复字符。

Code:

public static boolean isunique(String s) {

int index1,index2

char[] chars = s.toCharArray()

for(char c:chars) {

index1 = s.indexOf(c)

index2 = s.lastIndexOf(c)

if(index1 != index2) return false

}

return true

}

Set 有个 add 方法是将元素添加到 Set 中,以 HashSet 为例。

public boolean add(E e) {

    return map.put(e, PRESENT)==null

}

可以看到,HashSet 底层的数据结构是一个HashMap<E,Object>,将 e 作为 HashMap 的 key 保存的。而 HashMap 的底层数据结构是 HashTable ,根据 HashMap 的 key 的HashCode 去 HashTable (具体实现是数组+链表) 里找到元素的位置。如果同一个对象(使用equals 来比较两个对象是否相同,具体是比较对象的 hashCode() 是否相同) 往Set 里放,最终放到 HashTable 的位置是相同的。具体判断Set 是否包含某个对象,调用的是Set的contains(Object o) 方法,它内部也是通过计算 o 的hashCode 去查找该元素是否存在的。

如果题主是新学习Java的同学,建议重点学习一下常用集合的数据结构,对于掌握Java这门语言非常有帮助。