精心整理了最新的面试资料和简历模板,有需要的可以自行获取
Set集合
Set子接口
Set实现类
代码演示:
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class Test01 {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
//1.add()添加
set.add("java");
set.add("python");
set.add("c++");
System.out.println("数据个数:" + set.size());
System.out.println(set.toString());
//2.remove()删除
set.remove("c++");
System.out.println(set.toString());
//3.遍历
System.out.println("----------增强for-----------");
for (String str:set
) {
System.out.println(str);
}
System.out.println("----------迭代器-----------");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
//4.判断
System.out.println(set.contains("java"));
System.out.println(set.isEmpty());
}
}
结果:
HashSet存储方式
重写hashCode和equals方法
package com.ben.qw;
import com.ben.qi.Student;
import java.util.HashSet;
import java.util.Iterator;
/**
* HashSet的使用
* 存储结构:哈希表
* 存储过程:
* 1.根据hashcode计算保存的位置,如果此位置为空,则直接保存,如果不为空执行第二步
* 2.再执行equals方法,如果equals方法返回值为true,则认为是重复。否则形成链表
* */
public class Test02 {
public static void main(String[] args) {
HashSet<Student> students = new HashSet<>();
Student s1 = new Student("www",23);
Student s2 = new Student("sss",25);
Student s3 = new Student("aaa",28);
//1.添加
students.add(s1);
students.add(s2);
students.add(s3);
System.out.println("元素个数:" + students.size());
System.out.println(students.toString());
//2.删除
// students.remove(s1);
// System.out.println("删除后元素个数:" + students.size());
//3.遍历
System.out.println("----------增强for-----------");
for (Student s:students
) {
System.out.println(s.toString());
}
System.out.println("----------迭代器-----------");
Iterator<Student> iterator = students.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
//4.判断
System.out.println(students.contains(s1));
System.out.println(students.isEmpty());
}
}
代码结果:
TreeSet
字符串类型
package com.ben.qw;
import java.util.Iterator;
import java.util.TreeSet;
public class Test03 {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>();
//1.add添加
treeSet.add("www");
treeSet.add("sss");
treeSet.add("aaa");
System.out.println("元素个数:" + treeSet.size());
System.out.println(treeSet.toString());
//2.删除
// treeSet.remove("www");
// System.out.println("删除后元素:" + treeSet.size());
//3.遍历
System.out.println("---------增强for---------");
for (String str:treeSet
) {
System.out.println(str);
}
System.out.println("---------迭代器---------");
Iterator<String> iterator = treeSet.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
//4.判断
System.out.println(treeSet.contains("www"));
System.out.println(treeSet.isEmpty());
}
}
结果:
复杂类型:
package com.ben.qw;
import com.ben.qi.Student;
import java.util.Iterator;
import java.util.TreeSet;
/**
* 使用TreeSet保存数据
* 存储结构:红黑数
* 要求:元素必须要实现Comparable接口
*/
public class Test04 {
public static void main(String[] args) {
TreeSet<Student> treeSet = new TreeSet<>();
Student s1 = new Student("www",23);
Student s2 = new Student("sss",24);
Student s3 = new Student("aaa",26);
//1.添加
treeSet.add(s1);
treeSet.add(s2);
treeSet.add(s3);
System.out.println("元素个数:" + treeSet.size());
System.out.println(treeSet.toString());
//2.删除
treeSet.remove(s1);
System.out.println("删除后元素个数:" + treeSet.size());
//3.遍历
System.out.println("---------增强for---------");
for (Student stu:treeSet
) {
System.out.println(stu.toString());
}
System.out.println("---------迭代器---------");
Iterator<Student> iterator = treeSet.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
//4.判断
System.out.println(treeSet.contains(s1));
System.out.println(treeSet.isEmpty());
}
}
结果:
Comparator接口
package com.ben.qw;
import com.ben.qi.Student;
import java.util.Comparator;
import java.util.TreeSet;
/**
* TreeSet集合
* Comparator:实现定制比较(比较器)
* */
public class Test05 {
public static void main(String[] args) {
TreeSet<Student> treeSet = new TreeSet<>(new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
int m = o1.getAge() - o2.getAge();
int n = o1.getName().compareTo(o2.getName());
return m==0?n:m;
}
});
Student s1 = new Student("www",21);
Student s2 = new Student("sss",25);
Student s3 = new Student("aaa",26);
Student s4 = new Student("ass",26);
Student s5 = new Student("ass",21);
treeSet.add(s1);
treeSet.add(s2);
treeSet.add(s3);
treeSet.add(s4);
treeSet.add(s5);
System.out.println(treeSet.toString());
}
}
结果:
TreeSet练习
package com.ben.qw;
import java.util.Comparator;
import java.util.TreeSet;
/**
* 使用TreeSet集合实现字符串按照长度进行排序
* 利用Comparator接口实现定制比较
*/
public class Test06 {
public static void main(String[] args) {
TreeSet<String> treeSet = new TreeSet<>(new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
int m = o1.length() - o2.length();
int n = o1.compareTo(o2);
return m==0?n:m;
}
});
treeSet.add("sa");
treeSet.add("wada");
treeSet.add("apple");
treeSet.add("sas");
treeSet.add("hello world");
treeSet.add("wosi");
System.out.println(treeSet.toString());
}
}
结果: