Set类汇总

package 集合类.Set类;

/**
 * Set不允许重复数据<br>
 * Set最多允许一个null数据
 * @author jjj
 *
 */
import java.util.EnumSet;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class Set类汇总 {
	public static void main(String[] args) {
		// 基于Hash的集合,其中的hashCode方法很重要
		Set hashSet = new HashSet();

		// 提供按照一定规则排序的集合
		Set treeSet = new TreeSet();

		// 按照插入顺序进行使用的集合,双向链表
		Set linkedHashSet = new LinkedHashSet();

		// 针对enum使用的集合
		Set enumSet = EnumSet.noneOf(MyEnum.class);

		// 集合的基本操作
		// 我们用HashSet做测试
		Set<Object> set = new HashSet<Object>();
		;
		Object obj = new Object();

		// 如果 set 中尚未存在指定的元素,则添加此元素
		// 如何判断是否存在,各个实现并不相同
		boolean ok = set.add(obj);

		Set<Object> set2 = new HashSet<Object>();
		// 如果 set 中没有指定 collection 中的所有元素,则将其添加到此 set 中
		// 实际上是合集操作。
		ok = set.addAll(set2);

		// 移除此 set 中的所有元素
		// 就是清空了,啥都不要了
		set.clear();

		// 判断集合里是否包含这个对象
		// 判断方法,各个实现并不相同
		boolean found = set.contains(obj);

		// 判断一个集合是否包含了另一个集合或者至少是不少
		found = set.containsAll(set2);

		// 判断一个集合是否为空
		// 其实通过集合的长度也能判断出来
		boolean empty = set.isEmpty();

		// 迭代器,提供统一的访问集合的接口
		Iterator<Object> it = set.iterator();

		// 从集合中删除某个数据
		// 也就是被开除了
		ok = set.remove(obj);

		// 从集合中删除一组数据
		// 也就是集体开除了
		ok = set.removeAll(set2);

		// 看看集合里有多少东西了
		int size = set.size();

		// 将集合转化为数组
		Object[] objs = set.toArray();

		// 将集合转化为指定格式的数组
		// 比如集合里保存的都是String
		String[] objs2 = (String[]) set.toArray(new String[0]);
	}
}


你可能感兴趣的:(Set类汇总)