集合(Set)
HashSet
简介:本文旨在用最简洁的篇幅,快速熟悉使用HashMap。
声明方式
public static void main(String[] args) { // 方式一 子类实现方式创建 Set<Integer> set = new HashSet<Integer>(); set.add(1); set.add(3); set.add(1); set.add(2); set.add(4); set.add(100); set.add(-100); set.add(2); System.out.println(set); // 这个结果无序 且去重 /*[1, 2, 3, -100, 4, 100]*/ // 方式二 同一等级类的方式创建 HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(3); set.add(1); set.add(2); set.add(4); set.add(100); set.add(-100); set.add(2); System.out.println(set); // 这个结果无序 且去重 /*[1, 2, 3, -100, 4, 100]*/ }
常用方法
boolean add()添加字符 可以通过这个方法来判断一个字符是否在哈希表中存在
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); // 第一次添加成功 第二次添加失败 System.out.println(set.add(1)); /*true*/ System.out.println(set.add(1)); /*false*/ }
void clear() 清空集合
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); set.add(4); System.out.println(set); /*[1, 2, 3, 4]*/ set.clear(); System.out.println(set); /*[]*/ }
Object clone 克隆函数 浅拷贝
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); set.add(4); System.out.println(set); /*[1, 2, 3, 4]*/ // 克隆的时候要注意 就是需要 加上对应的强制转换 HashSet<Integer> set2 = (HashSet<Integer>)set.clone(); System.out.println(set2); /*[1, 2, 3, 4]*/ }
boolean isEmpty() add(),isEmpty(),size,(),iterator(),clear(),clone() 这几个函数基本是所有容器都有的而且作用还是一样的
后面就不会一直写了
boolean contains(Object o) 判断是否包含这个元素
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); set.add(4); System.out.println(set.contains(1)); /*true*/ }
boolean remove(Object o) 删除指定元素 返回是否删除成功 也可以用来判断元素是否在集合里面
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); set.add(4); System.out.println(set.remove(1)); /*true*/ System.out.println(set); /*[2, 3, 4]*/ }
遍历方式
public static void main(String[] args) { HashSet<Integer> set = new HashSet<Integer>(); set.add(1); set.add(2); set.add(3); set.add(4); // 方法一 for(Integer it : set) { System.out.print(it + " "); } /*1 2 3 4 */ System.out.println(); // 方法二 Iterator<Integer> it = set.iterator(); while(it.hasNext()) { System.out.print(it.next() + " "); } /*1 2 3 4 */ }
排序
HashSet不能直接进行排序 需要借助其他容易来实现 这里引出JavaSTL 中的一个很厉害的特性 容器之间的相互转换
public static void main(String[] args) { HashSet<Integer> set = new HashSet<>(); set.add(-1); set.add(56464); set.add(3); set.add(2); set.add(4); set.add(0); System.out.println(set); /*[-1, 56464, 0, 2, 3, 4]*/ System.out.println(); // 转换成List类型之后排序 List<Integer> list = new ArrayList<Integer>(set); Collections.sort(list); System.out.println(list); /*[-1, 0, 2, 3, 4, 56464]*/ }