一、List集合与Set集合区别: 1、List集合可以保存重复的数据,但是Set集合不可以 2、List集合是按照存储顺序保存的,Set集合中HashSet不是按照存储顺序保存的,具有不确定性;LinkedHashSet是按照用户储存的顺序储存的;TreeSet是按照自然顺序保存的 二、Set常用方法 1、添加元素 2、获取元素个数 3、判断集合中是否有元素 4、清空这个集合 5、遍历
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test2 {
public static void main(String[] args) {
// Set names = new HashSet();
// //1、List集合可以保存重复的数据,但是Set集合不可以
// //添加元素
// names.add("Tim");
// names.add("Tim");
// names.add("Jim");
// names.add("Jimmy");
//
// //获取元素个数
// int size = names.size();
// System.out.println(size);
//
// //2、List集合是按照存储顺序保存的,Set集合中HashSet不是按照存储顺序保存的,具有不确定性;LinkedHashSet是按照用户储存的顺序储存的;TreeSet是按照自然顺序保存的
// for (String name : names) {
// System.out.print(name+" ");
// }
// System.out.println();
Set names = new HashSet(); //调用HashSet构造方法
//public HashSet() {
// map = new HashMap();//为map成员变量赋值,HashSet对象
//}
names.add("Tim");//源码:
//public boolean add(E e) {
// return map.put(e, PRESENT) == null;//向Map集合中HashMap容器添加数据 PRESENT常量 本质:HashSet存储数据时本质是存到了HashMap集合的key
//}
names.add("Jim");
names.add("Jimmy");
//判断是否为空,是,返回true,不为空,返回false
boolean flag = names.isEmpty();
System.out.println(flag);
// //用于清空这个集合
// names.clear();
// flag = names.isEmpty();
// System.out.println(flag);
//注意:
// names.get(0);//get方法不存在;同理:没有list.set(3, "Tim");没有list.add(0, "Jim");
//同样,遍历不能用传统for循环,只有两种
for (String name : names) {//第一种
System.out.print(name+" ");
}
System.out.println();
Iterator iterator = names.iterator();//将集合中的数据转存
while(iterator.hasNext()) {
System.out.print(iterator.next()+" ");
}
System.out.println();
}
}
|