请问java hashset的问题
发布网友
发布时间:2022-07-05 00:21
我来回答
共3个回答
热心网友
时间:2023-11-29 05:14
HashSet不允许元素重复。所以你String数组中重复String将不被添加进HashSet。
代码大意:
遍历你的数组逐个添加到HashSet中,然后拿出HashSet中元素赋值给String数组。
数组长度会变短,删除了重复String吗。
那个警告没事,是List泛型的警告吧。如List list=new ArrayList();现在IDE都会报警告,要加泛型,也就是List中放置元素类型.如List<Integer> list=new ArrayList<Integer>();就没事了
热心网友
时间:2023-11-29 05:15
HashSet的特点就是不可重复的,无序的,是以key,value的形式存储的,通过key取出value,如果key相同的话,那么后来的会覆盖先前的,所以这样可以去除重复的值,明白了吧
热心网友
时间:2023-11-29 05:15
import java.util.Arrays;
import java.util.HashSet;
public class FindSameElements {
/** *//**
* 获取两个整型数组之间的重复元素集合
*
* @param array1
* 数组参数1
* @param array2
* 数组参数2
* @return
*/
public static HashSet findSame(int array1[], int array2[]) {
HashSet result = new HashSet();// 重复元素结果集合
HashSet set = new HashSet();// 利用HashSet来寻找重复元素
for (int i = 0; i < array1.length; i++) {
set.add(array1[i]);// 把 array1 添加到 set,有过滤作用
}
for (int i = 0; i < array2.length; i++) {// 遍历第二个数组
if (!set.add(array2[i])) {// 若有重复元素,add方法返回 false
result.add(array2[i]);// 将重复出现的元素加入结果集合
}
}
return result;
}
public static void main(String args[]) {
int a[] = { 1, 6, 2, 8, 5, 8, 6, 9, 0 };
int b[] = { 4, 5, 4, 8, 7, 6, 2, 0 };
// 获取重复元素集合
HashSet result = findSame(a, b);
// 遍历输出重复元素
for (Object o : result) {
System.out.print(o + " ");
}
}
}