Set子接口
特点:无序、无下标、元素不可重复
方法:全部继承自Collection中的方法
Set实现类
HashSet【重点】:
-
基于HashCode实现元素不重复
-
当存入元素的哈希码相同时,会调用equals进行确认,如结果为true,则拒绝后者存入
TreeSet:
-
基于排列顺序实现元素不重复
package jihe2; import java.util.HashSet; import java.util.Iterator; import java.util.Set; /** * 测试Set接口的使用 * 特点:1.无序、没有下标 2.不能重复 */ public class Demo01 { public static void main(String[] args) { //创建集合 Set<String> set = new HashSet<>(); //1.添加数据 set.add("苹果"); set.add("小米"); set.add("华为"); System.out.println("数据个数"+set.size()); System.out.println(set.toString()); //2.删除数据 //set.remove("小米"); //System.out.println(set.toString()); //3.遍历【重点】 //3.1使用增强for System.out.println("--------增强for--------"); for (String string:set) { System.out.println(string); } //3.2使用迭代器 Iterator<String> it = set.iterator(); while (it.hasNext()){ System.out.println(it.next()); } //4.判断 System.out.println(set.contains("华为")); System.out.println(set.isEmpty()); } }
package jihe2; import java.util.HashSet; import java.util.Iterator; /** * HashSet集合的使用 * 存储结构:哈希表(数组+链表+红黑树) * 存储过程: * (1)根据hashcode计算保存的位置,如果此位置为空,则直接保存,如果不为空执行第二步 * (2)再执行equals方法,如果equals方法为true,则认为是重复,否则,形成链表 * */ public class Demo02 { public static void main(String[] args) { //新建集合 HashSet<String> hashSet = new HashSet<>(); //1.添加元素 hashSet.add("AAAA"); hashSet.add("BBBB"); hashSet.add("CCCC"); hashSet.add("DDDD"); System.out.println("元素个数"+hashSet.size()); System.out.println(hashSet.toString()); //2.删除数据 //hashSet.remove("AAAA"); //System.out.println(hashSet.toString()); //3.遍历 //3.1使用增强for for (String string:hashSet) { System.out.println(string); } //3.2使用迭代器 Iterator<String> it = hashSet.iterator(); while (it.hasNext()){ System.out.println(it.next()); } //4.判断 System.out.println(hashSet.contains("EEEE")); System.out.println(hashSet.isEmpty()); } }
搜索
复制
标签:Set,hashSet,System,接口,println,add,set,集合,out From: https://www.cnblogs.com/sususyq-/p/16724122.html