当前位置:网站首页>集合应用,展示学生信息
集合应用,展示学生信息
2022-08-06 05:24:00 【半世晨晓1128】
1.创建学生类
package Java0910;
import java.util.Objects;
public class Student {
String name;
int age;
String phone;
public Student(String name, int age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", phone='" + phone + '\'' +
'}';
}
@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) && Objects.equals(phone, student.phone);
}
@Override
public int hashCode() {
return Objects.hash(name, age, phone);
}
}
package Java0910;
import java.util.ArrayList;
import java.util.List;
public class List02 {
public static void main(String[] args) {
Student s = new Student("晓晓", 20, "15373412345");
Student s1 = new Student("小小", 21, "132479069");
List l = new ArrayList();
l.add(s);
l.add(s1);
for (Object e : l) {
System.out.println(e);
}
}
}
2.用Map封装学生信息
package Java0910;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class List02 {
public static void main(String[] args) {
Map m = new HashMap();
m.put("name", "晓晓");
m.put("age", 20);
m.put("phone", "123");
Map m1 = new HashMap();
m1.put("name", "小小");
m1.put("age", 21);
m1.put("phone", "12");
List l = new ArrayList();
l.add(m);
l.add(m1);
for (Object e : l) {
System.out.println(e);
}
}
}
3.用TreeSet比较学生的年龄大小。
package Java0910;
import java.util.Objects;
public class Student implements Comparable<Student> {
{
String name;
int age;
String phone;
public Student(String name, int age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", phone='" + phone + '\'' +
'}';
}
@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) && Objects.equals(phone, student.phone);
}
@Override
public int hashCode() {
return Objects.hash(name, age, phone);
}
public int compareTo(Student o) {
// return this.age-o.age; //从小到大
return o.age - this.age; //从大到小
}
}
package Java0910;
import java.util.*;
public class List02 {
public static void main(String[] args) {
Student s = new Student("晓晓", 20, "15373412345");
Student s1 = new Student("小小", 21, "132479069");
Set l = new TreeSet();
l.add(s);
l.add(s1);
for (Object e : l) {
System.out.println(e);
}
}
}
4.创建一个比较器,实现Comparator接口
package Java0910;
import java.util.Comparator;
public class MyComparator implements Comparator<Student01> {
@Override
public int compare(Student01 o1, Student01 o2) {
return o1.age - o2.age;
}
}
package Java0910;
import java.util.Objects;
public class Student01 {
String name;
int age;
String phone;
public Student01(String name, int age, String phone) {
this.name = name;
this.age = age;
this.phone = phone;
}
@Override
public String toString() {
return "Student01{" +
"name='" + name + '\'' +
", age=" + age +
", phone='" + phone + '\'' +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student01 student01 = (Student01) o;
return age == student01.age && Objects.equals(name, student01.name) && Objects.equals(phone, student01.phone);
}
@Override
public int hashCode() {
return Objects.hash(name, age, phone);
}
}
package Java0910;
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSet01 {
public static void main(String[] args) {
Comparator c = new MyComparator();
TreeSet t = new TreeSet(c);
Student01 s = new Student01("晓晓", 20, "15373412345");
Student01 s1 = new Student01("小小", 21, "132479069");
t.add(s);
t.add(s1);
for (Object e : t) {
System.out.println(e);
}
}
}
5.匿名实现类
package Java0910;
import java.util.Comparator;
import java.util.TreeSet;
public class TreeSet01 {
public static void main(String[] args) {
//匿名内部类(接口的实现类)
TreeSet t = new TreeSet(new Comparator<Student01>() {
@Override
public int compare(Student01 o1, Student01 o2) {
return o1.age - o2.age;
}
});
Student01 s = new Student01("晓晓", 20, "15373412345");
Student01 s1 = new Student01("小小", 21, "132479069");
t.add(s);
t.add(s1);
for (Object e : t) {
System.out.println(e);
}
}
}
6.lambad表达式
package Java0910;
import java.util.TreeSet;
public class TreeSet01 {
public static void main(String[] args) {
//lambad表达式
TreeSet<Student01> t = new TreeSet<>((o1,o2) -> o1.age - o2.age);
Student01 s = new Student01("晓晓", 20, "15373412345");
Student01 s1 = new Student01("小小", 21, "132479069");
t.add(s);
t.add(s1);
for (Object e : t) {
System.out.println(e);
}
}
}
边栏推荐
猜你喜欢

TCP协议理解和用法以及三次握手四次分手

redis-(error) CLUSTERDOWN Hash slot not served

Distributed, Microservices, Cluster Concepts and Differences

最深入全面讲解高可用 Redis 服务架构分析与搭建——太厉害了

Kindle access to HomeAssistant: Realize lock screen wallpaper to display device information in HA and obtain Kindle power in HA

Sprinig Boot + Redis 实现接口幂等性,写得太好了

树莓派上Home Assistant 容器使用命令传感器获取并显示CPU温度、内存使用等信息

SNAT和DNAT

在VMware上面安装Solaris 10

External Interrupts and Timers
随机推荐
mysql数据库
screen 乱码问题
After the Xiaomi AX3600 router is expanded and flashed OpenWrt, how to flash back to the official system and partition
vmware设置多端口对应多网卡(桥接模式)
小米AX3600路由器扩容刷OpenWrt后,如何刷回官方系统和分区
ARM Cortex-M debugging
4.1 脚本病毒编写实验
利用Metasploit控制目标电脑(Win7_x64系统)
五分钟看懂shell重定向和变量
教你怎样用三剑客玩转正则表达式
动态规划之数字n二进制位中1的个数
antdesign 动态引入icon
Distributed, Microservices, Cluster Concepts and Differences
ARMv7-M Debug Part
动态规划之跳跃游戏
iCopy日记,开机自启
3.6 shellcode编码技术
高危漏洞预警 | Atlassian Confluence OGNL注入命令执行漏洞复现与分析报告
学好iptables防火墙拒绝信息泄露
谷歌浏览器反复提示PageOffice安装