网站开发要用什么语言,做货代在上面网站找客户比较多,南昌专业做网站,网页加速器手机Java 集合的 Set 接口Set类型与List类型的区别Set#xff1a; 无序、不可重复List#xff1a; 有序、可重复1、HashSetHashSet的存储结构#xff1a;HashMap特点#xff1a;HashSet通过比较存放的哈希码(hashCode)来确定对象存放的位置当两个对象的哈希值相等时#xff0c…Java 集合的 Set 接口Set类型与List类型的区别Set 无序、不可重复List 有序、可重复1、HashSetHashSet的存储结构HashMap特点HashSet通过比较存放的哈希码(hashCode)来确定对象存放的位置当两个对象的哈希值相等时HashSet通过对象的equals方法来判断两个对象是否相同如果相同则丢弃该对象由于判断元素是否存在的依据是hashCode和equals方法所以我们在使用时通常重写类的这两个方法来达到自定义对象比较规则的目的。该比较只实现判断两个对象是否相同从而达到存放不重复的效果并无排序功能。重写hashCode()和equals(Object obj)方法实现对象比较/*** 重写hashCode方法*/Overridepublic inthashCode() {returnID;}/*** 重写equals方法必须在执行hashCode方法得到相同哈希值之后才进入该方法*/Overridepublic booleanequals(Object obj) {if (this obj)return true;if (obj null)return false;if (getClass() !obj.getClass())return false;Student other(Student) obj;if (ID !other.ID)return false;return true;}习题已知ArrayList集合s1, 现要实现将s1中重复的元素移除方法1HashSet s2 new HashSet(s1);方法2HashSet s2 new HashSet();s2.addAll(s1);方法3HashSet s2 new HashSet();for(String string : s1) {s2.add(string);}2、TreeSetTreeSet使用元素的自然顺序对元素进行排序或者根据创建set时提供的Comparator进行排序。构造方法构造一个包含指定 collection 元素的新 TreeSet它按照其元素的自然顺序进行排序。Comparator super E comparator)构造一个新的空 TreeSet它根据指定比较器进行排序。该比较器为实现了Comparator接口的类的实体对象。自然顺序的规则TreeSet使用的元素的自然顺序由元素自己提供比较规则。通常这个比较规则有两种实现方法元素对象实现Comparable接口并实现接口的CompareTo方法TreeSet在实例化的时候传入一个该元素对象的比较器该比较器实现了Comparator接口并实现接口的compare方法实现Comparable接口public class Student implements Comparable{.../*** 重写Comparable接口的compareTo方法将o的name属性与本对象的name属性对比*/Overridepublic intcompareTo(Student o) {returnname.compareTo(o.name);}传入比较器比较器类public class MyComparator implements Comparator{Overridepublic intcompare(Student o1, Student o2) {return o1.getAge() -o2.getAge();}}构造方法HashSet stuList new HashSet(new MyComparator());练习使用TreeSet对存储字符串并根据字符串长度排序代码实现public static voidmain(String[] args) {//实例化TreeSet并通过匿名类传入比较器TreeSet tSet new TreeSet(new Comparator() {Overridepublic intcompare(String o1, String o2) {return o2.length() -o1.length();}});tSet.add(asd);tSet.add(asd1);tSet.add(asd111);tSet.add(asd11);System.out.println(tSet);}打印结果[asd111, asd11, asd1, asd]