在我们学习Java中Set的作用
Set集合的特点:
不能存储相同的元素。
同时因为其是一个抽象的接口:所以不能直接实例化一个set对象。(Set s = new Set() )错误
该接口主要继承于Collections接口,所以具有Collection的一些常见的方法。
常见的方法:
Set接口最长用的两大实现:HashSet TreeSet
HashSet:无须的存储,只能通过迭代器和增强型for两种遍历方法。
import java.util.HashSet;
import java.util.Random;
public class Set {
public static void main(String[] args) {
HashSet<Integer> set=new HashSet<>();
Random r=new Random();
while (set.size()<10){
set.add(r.nextInt(20)+1);
}
for (Integer i : set) {
System.out.println(i);
}
}
}
TreeSet:会将里面的元素默认排序。
import java.util.Objects;
public class Student /*implements Comparable<Student>*/{
private int age;
private String name;
public Student(String name, int age){
this.name=name;
this.age=age;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(age, name);
}
@Override
public String toString() {
return "Student{" +
"name=" + name +
", age='" + age + '\'' +
'}';
}
import java.util.Set;
import java.util.TreeSet;
public class TreeSetTest1 {
public static void main(String[] args) {
Set<Student> set=new TreeSet<>();
set.add(new Student("bo",11));
set.add(new Student("bi",12));
set.add(new Student("ba",13));
set.add(new Student("zi",14));
for (Student student : set) {
System.out.println(student);
}
}
}
今天的总结就到这里。