前言:
而今大家对“javaset排序”大约比较关怀,看官们都需要分析一些“javaset排序”的相关知识。那么小编也在网摘上收集了一些对于“javaset排序””的相关文章,希望朋友们能喜欢,兄弟们一起来学习一下吧!Set是Java集合类中的一部分,继承了Collection接口。
特点:Set中的数据不允许重复。
基本操作
1、创建Set实例(以HashSet为例)
// 数据类型不能为基本类型Set<数据类型> set = new HashSet<>(); // 示例Set<Integer> set = new HashSet<>();
2、添加一个元素
使用 add 方法。
boolean add(E e);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);System.out.println(set); // 输出 [1, 2, 3]
3、添加一个集合
使用 addAll 方法。
boolean addAll(Collection<? extends E> c);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);Set<Integer> set1 = new HashSet<>();set1.add(1);set1.add(4);List<Integer> list = new ArrayList<>();list.add(1);list.add(5);set.addAll(set1);System.out.println(set); // 输出 [1, 2, 3, 4]set.addAll(list);System.out.println(set); // 输出 [1, 2, 3, 4, 5]
4、删除元素
使用 remove 方法。
boolean remove(Object o);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);set.remove(1);System.out.println(set); // 输出 [2, 3]
5、获取集合中元素个数
使用 size 方法。
int size();
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);System.out.println(set.size()); // 输出 3
6、判断集合是否为空
使用 isEmpty 方法。
boolean isEmpty();
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);System.out.println(set.isEmpty()); // 输出 false
7、判断集合中是否包含指定的元素
使用 contains 方法。
boolean contains(Object o);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);System.out.println(set.contains(1));
8、判断集合是否包含另外一个集合
使用 containsAll 方法。
boolean containsAll(Collection<?> c);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);Set<Integer> set1 = new HashSet<>();set1.add(1);set1.add(4);List<Integer> list = new ArrayList<>();list.add(1);list.add(3);System.out.println(set.containsAll(set1)); // 输出 falseSystem.out.println(set.containsAll(list)); // 输出 true
9、集合转数组
使用 toArray 方法,有两个方法可以使用,如下:
Object[] toArray();<T> T[] toArray(T[] a);
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);Object[] objects = set.toArray();Integer[] integers = set.toArray(new Integer[0]);
10、清空集合元素
使用 clear 方法。
void clear();
示例:
Set<Integer> set = new HashSet<>();set.add(1);set.add(1);set.add(2);set.add(3);set.clear();高级用法
1、集合几种方式
第一种:for循环遍历
for (Integer i : set) { System.out.println(i);}
第二种:迭代器遍历
Iterator<Integer> iterator = set.iterator();while (iterator.hasNext()) { System.out.println(iterator.next());}
第三种:foreach方式
set.forEach(System.out::println);
第四种:spliterator方式,比较不常用
Spliterator<Integer> spliterator = set.spliterator();spliterator.forEachRemaining(System.out::println);
2、求交集、差集、并集
首先准备两个集合:
Set<Integer> set = new HashSet<>();set.add(1);set.add(2);set.add(3);Set<Integer> set1 = new HashSet<>();set1.add(3);set1.add(4);set1.add(5);
差集:
set.removeAll(set1);
并集:
set.removeAll(set1);set.addAll(set1);
交集:
set.retainAll(set1);
3、EnumSet使用
使用EnumSet创建集合,如下:
public class SetDemo { enum Fruit {APPLE, BANANA, PEAR} public static void main(String[] args) { Set<Fruit> fruitSet = EnumSet.of(Fruit.APPLE, Fruit.BANANA, Fruit.PEAR); // EnumSet其他方法略 }}
4、TreeSet使用
使用TreeSet进行正向排序:
Set<Integer> set = new TreeSet<>();set.add(2);set.add(1);set.add(3);System.out.println(set); // 正向排序,输出 [1, 2, 3]
反向排序:
Set<Integer> set = new TreeSet<>(Comparator.reverseOrder());set.add(2);set.add(1);set.add(3);System.out.println(set); // 反向排序,输出 [3, 2, 1]
还可以自定义排序:
Set<Integer> set = new TreeSet<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; }});set.add(2);set.add(1);set.add(3);System.out.println(set); // 自定义排序,输出 [1, 2, 3]
标签: #javaset排序