HashSet的关系图:
Conllection——>Set——>TreeSet和HashSet 。
HashSet常用方法:
1、add(Object obj):向Set集合中添加元素,添加成功返回true,否则返回false。
2、size():返回Set集合中的元素个数。
3、remove(Object obj): 删除Set集合中的元素,删除成功返回true,否则返回false。
4、isEmpty():如果Set不包含元素,则返回 true ,否则返回false。
5、clear(): 移除此Set中的所有元素。
6、iterator():返回在此Set中的元素上进行迭代的迭代器。
7、contains(Object o):如果Set包含指定的元素,则返回 true,否则返回false。
方法使用:
1、add(Object o):向Set集合中添加元素,不允许添加重复数据。
2、size():返回Set集合中的元素个数。
例如:
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>(); //调用HashSet无参构造方法——>创建HashMap对象并给map全局变量。
set.add("徐冰");
set.add("萤火");
System.out.println(set);
System.out.println(set.size());
}
}
输出:
[萤火, 徐冰]
2
注意:不会按照保存的顺序存储数据(顺序不定),遍历时不能保证下次结果和上次相同。且
向HashSet集合中添加元素,HashSet add方法实质是map全局变量调用了put方法,将数据存到了key,因为HashMap的 key不允许,所以HashSet添加的元素也不允许重复。
来看一下HashSet的add源代码:
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
put()方法就是HashMap的方法。
3、remove(Object o): 删除Set集合中的obj对象,删除成功返回true,否则返回false。
4、isEmpty():如果Set不包含元素,则返回 true。
例如:
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("徐冰");
set.add("萤火");
System.out.println(set.isEmpty());
System.out.println(set.remove("萤火"));
System.out.println(set);
}
}
5、clear(): 移除此Set中的所有元素。
例如:
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("徐冰");
set.add("萤火");
System.out.println(set);
set.clear();
System.out.println(set);
}
}
输出:
[萤火, 徐冰]
[]
6、iterator():返回在此Set中的元素上进行迭代的迭代器。
例如借助iterator方法进行Set遍历:
import java.util.HashSet;
import java.util.Iterator;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("徐冰");
set.add("萤火");
Iterator<String> ite =set.iterator();
while(ite.hasNext())
{
System.out.println(ite.next());
}
}
}
输出:
萤火
徐冰
7、contains(Object o):判断集合中是否包含obj元素。
例如:
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("徐冰");
set.add("萤火");
System.out.println(set.contains("徐冰"));
}
}
输出:
true
8、加强for循环遍历Set集合:
例如:
import java.util.HashSet;
public class Test {
public static void main(String[] args) {
HashSet<String> set = new HashSet<String>();
set.add("徐冰");
set.add("萤火");
for (String name : set) { //使用foreach进行遍历。
System.out.println(name);
}
}
}
输出:
萤火
徐冰