14.Set集合
也是一个接口。父接口是collection;
特征:无序的,不可重复的。
它有两个实现类:
HashSet : 依靠hash值进行存储,如果两个hash值一样,就不再存储 。
TreeSet : 底层是二叉树,对存储的数据进行自然排序。
package com.homework; import java.util.HashSet; import java.util.Set; public class Demo2 { public static void main(String[] args) { Set<String> set = new HashSet<>(); set.add("小白"); set.add("白"); set.add("小"); set.add("小x白"); System.out.println(set); for (String s : set) { System.out.println(s); }· } }
package com.homework; import java.util.HashSet; import java.util.Set; class Student { String name; int age; //有参构造 public Student(String name, int age) { this.name = name; this.age = age; } //tostring @Override public String toString() { return "Student{" + "name='" + name + '\'' + ", age=" + age + '}'; } } public class Demo2 { public static void main(String[] args) { Set<Student> set = new HashSet<>(); //第一种存法 set.add(new Student("小白" , 18)); set.add(new Student("白" , 20)); set.add(new Student("小" , 19)); set.add(new Student("小x白" , 108)); set.add(new Student("小x白" , 108)); //第二种存法 Student student = new Student("小黑" , 250); set.add(student); //无序不可重复 System.out.println(set); // for (Student student1 : set) { // System.out.println(student1); // } } }
package com.homework; import java.util.Set; import java.util.TreeSet; public class Demo3 { public static void main(String[] args) { Set <String> set = new TreeSet<>(); set.add("小白"); set.add("白"); set.add("小"); set.add("小x白"); System.out.println(set); for (String s : set) { System.out.println(s); } } }
package com.homework; import java.util.Comparator; import java.util.Set; import java.util.TreeSet; //第二种方法 class Animal implements Comparable <Animal>{ String name; int age; public Animal(String name, int age) { this.name = name; this.age = age; } @Override public String toString() { return "Animal{" + "name='" + name + '\'' + ", age=" + age + '}'; } @Override public int compareTo(Animal animal) { int num = this.age - animal.age; return num; } } ////TreeSet存对象 必须实现 Comparator接口 第一种写法 //class myClass implements Comparator <Animal> { // // @Override // public int compare(Animal o1, Animal o2) { // int num = o1.age - o2.age; // return num; // } //} public class Demo3 { public static void main(String[] args) { //第一种方法 //Set <Animal> set = new TreeSet<>(new myClass()); //第二种方法 Set<Animal> set = new TreeSet<>(); //第一种 set.add(new Animal("小白" , 15)); set.add(new Animal("白" , 20)); set.add(new Animal("小" , 30)); set.add(new Animal("小x白" , 50)); set.add(new Animal("小x白" , 50)); //第二种 Animal animal = new Animal("小黑" , 250); set.add(animal); System.out.println(set); // for (Animal animal1 : set) { System.out.println(animal1); } } }
浙公网安备 33010602011771号