目录
一:LinkedHashSet类概述
元素有序唯一 由链表保证元素有序 由哈希表保证元素唯一
注意:由于它继承于HashSet所以它具有HashSet,和Set以及Collection的方法
二:解释
LinkedHashSet:底层是哈希表和链表组成
哈希表保证元素的唯一性
链表保证的元素的顺序、有序(存储和取出的顺序一致)
先将进来的元素进行hashcode然后比较如果不存在就插入,如果有就继续
三:例子
1:集合存储字符串并遍历
package day27;
import java.util.LinkedHashSet;
public class Test16{
public static void main(String[] args) {
LinkedHashSet<String> strings = new LinkedHashSet<>();//创建LinkedHashSet对象指定泛型为字符串
//添加元素
strings.add("hello");
strings.add("world");
strings.add("java");
strings.add("hadoop");
strings.add("world");
strings.add("java");
//增强for循环遍历集合strings并且输出
for (String string : strings) {
System.out.println(string);
}
}
}
2:集合存储对象并遍历
package day27;
import java.util.LinkedHashSet;
public class Test17 {
public static void main(String[] args) {
LinkedHashSet<Student> students = new LinkedHashSet<>();
Student s1 = new Student(18, "小花");
Student s2 = new Student(17, "小明");
Student s3 = new Student(19, "小可");
Student s4 = new Student(20, "小良");
Student s5 = new Student(22, "小亮");
Student s6= new Student(19, "小花");
Student s7 = new Student(17, "小明");
//把学生对象添加到元素中
students.add(s1);
students.add(s2);
students.add(s3);
students.add(s4);
students.add(s5);
students.add(s6);
students.add(s7);
//增强for循环遍历获得学生姓名和年龄并输出
for (Student student : students) {
System.out.println(student.getName()+"**"+student.getAge());
}
}
}