集合框架4-----Set集合
参考视频:
HashSet的使用
-
存储结构:哈希表(数组+链表+红黑树)
-
存储过程:
1.根据hashcode计算保存的位置,如果此位置为空,则直接保存,如果不为空,执行第二步;
2.再执行equals方法,如果equals方法为true,则认为是重复,否则,形成链表;
代码如下:
import java.util.HashSet;
import java.util.Iterator;
public class Demo1 {
public static void main(String[] args) {
HashSet<String> hash = new HashSet<>();
hash.add("苹果");
hash.add("香蕉");
hash.add("鸭梨");
hash.add("香蕉");
System.out.println(hash.size());
System.out.println(hash.toString());//输出[苹果, 香蕉, 鸭梨],重复元素不输出
//遍历
Iterator<String> it = hash.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
//删除与判断
hash.remove("香蕉");
System.out.println(hash.size());//输出2
System.out.println(hash.contains("香蕉"));//输出false
System.out.println(hash.isEmpty());//输出false
}
}
TreeSet:
一、使用comparable接口
//创建实体类StudentTree.java
package com.mokuiran.set;
public class StudentTree implements Comparable<StudentTree>{
private String name;
private int age;
public StudentTree() {
}
public StudentTree(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}