Collection接口的子类有List、Set、Queue
上章介绍了List接口中的两个最常用的接口ArrayList、LinkedList
这章主要说一下Set的用处和一个代码的理解。
至于关于Queue(队列):大家可以看一下这篇文章,讲的很容易理解http://t.csdn.cn/Wutnahttp://t.csdn.cn/Wutna
目录
Java中Set集合的一个最明显的特点就是无序且唯一
Set 集合类似于一个罐子,程序可以依次把多个对象“丢进”Set 集合,而 Set 集合通常不能记住元素的添加顺序。也就是说 Set 集合中的对象不按特定的方式排序,只是简单地把对象加 入集合。
Set 集合中不能包含重复的对象,并且最多只允许包含一个 null 元素。
Set 实现了 Collection 接口,它主要有两个常用的实现类: HashSet 类和 TreeSet类。
不过两者中不是用的比较多的还是HashSet
创建实现类的建议
其实对于实现一个类,我比较推荐的是:左边是父类,右边是子类
这样既可以调用子类的方法还可以调用父类的方法
类似下图
HashSet<String> FhashSet = new HashSet<>();
Set<String> FhashSet1 = new HashSet<>();
Set的最明显的用处
用处(1):排除相同元素,假如一个数组有很多不同的数,也有相同的数,想要知道有多少个数,就可以用Set。
用处(2):……
用处(3):……
HashSet的方法与操作
HashSet的构造方法
1 HashSet()
2 HashSet(int initialCapacity)
3 HashSet(int initialCapacity, float loadFactor)
4 HashSet(Collection)
HashSet的操作
1 添加元素add()
2 删除元素remove()
3 判断是否包含元素contains()
4 判断是否为空isEmpty()
5 获得大小size()
6 遍历HashSet
public class HashSetTest
{
//Set 无序且唯一
public static void main(String[] args)
{
//调用无参的构造函数创建HashSet对象,可以传入任意类型
HashSet hashSet = new HashSet();
//创建泛型的HashSet集合对象,只能传入String
HashSet<String> FhashSet = new HashSet<>();
String course1 = "《刀》";
String course2 = "《剑》";
String course3 = "《无》";
String course4 = "《眼》";
String course5 = "《眼》";
String course6 = "《Lungcen》";
//Set 集合中不能包含重复的对象,并且最多只允许包含一个 null 元素
FhashSet.add(course1); // 将 course1 存储到 Set集合中
FhashSet.add(course2); // 将 course2 存储到 Set集合中
FhashSet.add(course3); // 将 course3 存储到 Set集合中
FhashSet.add(course4); // 将 course4 存储到 Set集合中
FhashSet.add(course5); // 将 course5 存储到 Set集合中
FhashSet.add(course6); // 将 course6 存储到 Set集合中
Iterator iterator = FhashSet.iterator();
//不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也有可能发生变化。
while (iterator.hasNext())
{
System.out.println(iterator.next());
}
}
}