每天写java到期末考试--复习集合与泛型--6.28

1、定义一个Student类,具有name、sex、age属性,具有getName、setName、getSex、setSex、
getAge、setAge方法和三个参数的构造方法
2、编写一个类,名字为ListDemo,在main方法中做以下工作:
定义一个可以保存Student类型对象的List类型对象list1,然后向list1中放入2个学生:new Student("张
三",“男”,20)、new Student(“李四”,“男",22)
遍历list1中的学生对象,并将每个学生的姓名、性别、年龄输出到显示器
3、定义一个可以保存String类型对象的List类型对象list2,然后向list2中放入2个字符串:"aaa"、"bbb"
遍历list2中的字符串对象,并输出到显示器
4、定义一个Map<String,Student>map=New HashMap<String,Student>();,然后向map中放入2个学
生,<"s1",new Student("王五",“男”,23)>、<"s2",new Student("王六”,“男”,24)>
遍历map中的key和value,并将每个学生的姓名、性别、年龄输出到显示器。
5、定一个Set类型的对象set1,然后向set1中放入2个学生:new Student(“张三”,“男”,20)、new
Student(“李四”,“男",22)。
遍历set1中的学生对象,并将每个学生的姓名、性别、年龄输出到显示器。
6、修改Student类,让它实现Comparable<Student>接口(实现Comparable接口的目的是为了让
Student类的对象能够比较大小,即具有比较大小的标准。具体比较标准要通过实现接口中定义的public int
compareTo(Student o)方法来定义。该方法的返回值>0,表示该方法所在的对象大于o对象 ;= 0表示该方法所
在的对象等于o对象 ;< 0表示方法所在的对象小于o对象)。具体要求如下:
这里我们要求根据Student对象的age属性比较大小,age大的对象也大,age小的对象也小。因而该方法中
要根据Student对象的age属性进行比较,如果this.age大于o.age则返回1,如果this.age等于o.age则返回0,
否则返回-1,这样即可实现按照age进行比较大小的功能,并且是age大的对象也大。(如果age是整数的话,
也可以在方法中直接返回this.age-o.age)
反之,如果想让age小的对象大,age大的对象小,则修改该方法的返回值,让this.age大于o.age则返
回-1;如果this.age等于o.age则返回0,否则返回1。(如果age是整数的话,也可以在方法中直接返回o.age-
this.age请同学们好好体会)。
7、定义一个集合List<Student>list3=new ArrayList<Student>();
然后向list3中加入3个Student对象,分别为:
new Student("张三",“男",22);
new Student("李四","男",20);
new Student("王五”,“男”,21);
然后调用Collections类的sort方法将该list3集合排序。
最后遍历输出集合list3中所有对象的姓名。

task1

1、定义一个Student类,具有name、sex、age属性,具有getName、setName、getSex、setSex、

getAge、setAge方法和三个参数的构造方法(√)

package java1;

public class Student {
    private String name;
    private String sex;
    private int age;
    public Student(){


    }
    public Student(String name,String sex,int age){
        this.age=age;
        this.sex=sex;
        this.name=name;
    }

    public void setAge(int age){
        this.age=age;
    }
    public int getAge(){
        return age;
    }
    public void setName(String name){
        this.name=name;
    }

    public String getName() {
        return name;
    }
    public String getSex(){
        return sex;

    }
    public void setSex(String name){
        this.sex=sex;
    }

}

task2

2、编写一个类,名字为ListDemo,在main方法中做以下工作:

定义一个可以保存Student类型对象的List类型对象list1,然后向list1中放入2个学生:new Student("张

三",“男”,20)、new Student(“李四”,“男",22)

遍历list1中的学生对象,并将每个学生的姓名、性别、年龄输出到显示器(√)---10min

package java1;
import java.util.ArrayList;


public class ListDome {
    public static void main(String[] args) {


    ArrayList<Student> list =new ArrayList<>();
    Student s1=new  Student("张三 ","男 ",20);
    Student s2=new Student("李四 ","男 ",22);
    list.add(s1);
    list.add(s2);
    //list.add(new Student("张 三","男",20)
        for (int i = 0; i < list.size(); i++) {
            Student stu =list.get(i);
            System.out.println(stu.getName()+stu.getSex()+stu.getAge());

        }
    }

}

task3

3、定义一个可以保存String类型对象的List类型对象list2,然后向list2中放入2个字符串:"aaa"、"bbb"

遍历list2中的字符串对象,并输出到显示器---5min


    ArrayList<String> list2=new ArrayList<>();
        list2.add("aaa");
        list2.add("bbb");
        list2.add("ccc");
        for (int i = 0; i < list2.size(); i++) {
            String str =list2.get(i);
            System.out.println(str);

        }

task4

4、定义一个Map<String,Student>map=New HashMap<String,Student>();,然后向map中放入2个学

生,<"s1",new Student("王五",“男”,23)>、<"s2",new Student("王六”,“男”,24)>

遍历map中的key和value,并将每个学生的姓名、性别、年龄输出到显示器。---20min

        // 3. 定义一个Map<String, Student> map,然后向map中放入2个学生
        Map<String, Student> map = new HashMap<>();
        map.put("s1", new Student("王五", "男", 23));
        map.put("s2", new Student("王六", "男", 24));
        for (Map.Entry<String, Student> entry : map.entrySet()) {
            String key = entry.getKey();
            Student student = entry.getValue();
            System.out.println("Key: " + key + ", Student: " + student);
        }
* `map.entrySet()`:这个方法返回`map`中所有键值对的集合(`Set<Map.Entry<K,V>>`)。每个键值对都是一个`Map.Entry`对象,它包含了键和值。  
* 在循环中,`entry`变量被用来引用集合中的每一个`Map.Entry`对象。  
* `entry.getKey()`:用于获取当前`entry`对象的键(在这里是学生的唯一标识符)。  
* `entry.getValue()`:用于获取当前`entry`对象的值(在这里是`Student`对象)。  
* `System.out.println("Key: " + key + ", Student: " + student);`:将键和值(即学生的唯一标识符和学生的信息)打印到控制台。

task5

5、定一个Set类型的对象set1,然后向set1中放入2个学生:new Student(“张三”,“男”,20)、new

Student(“李四”,“男",22)。

遍历set1中的学生对象,并将每个学生的姓名、性别、年龄输出到显示器。---10min


import java.util.HashSet;  
import java.util.Set;  
  
public class SetDemo {  
    public static void main(String[] args) {  
        Set<Student> set1 = new HashSet<>();  
        set1.add(new Student("张三", "男", 20));  
        set1.add(new Student("李四", "男", 22));  
  
        // 由于未重写Student类的equals和hashCode方法,所以即使学生信息相同,也会被认为是不同的对象  
        // 如果要按学生信息去重,需要重写Student类的equals和hashCode方法  
  
        for (Student student : set1) {  
            System.out.println("姓名: " + student.getName() + ", 性别: " + student.getSex() + ", 年龄: " + student.getAge());  
        }  
    }  
}

task6

6、修改Student类,让它实现Comparable<Student>接口(实现Comparable接口的目的是为了让

Student类的对象能够比较大小,即具有比较大小的标准。具体比较标准要通过实现接口中定义的public int

compareTo(Student o)方法来定义。该方法的返回值>0,表示该方法所在的对象大于o对象 ;= 0表示该方法所

在的对象等于o对象 ;< 0表示方法所在的对象小于o对象)。具体要求如下:

这里我们要求根据Student对象的age属性比较大小,age大的对象也大,age小的对象也小。因而该方法中

要根据Student对象的age属性进行比较,如果this.age大于o.age则返回1,如果this.age等于o.age则返回0,

否则返回-1,这样即可实现按照age进行比较大小的功能,并且是age大的对象也大。(如果age是整数的话,

也可以在方法中直接返回this.age-o.age)

反之,如果想让age小的对象大,age大的对象小,则修改该方法的返回值,让this.age大于o.age则返

回-1;如果this.age等于o.age则返回0,否则返回1。(如果age是整数的话,也可以在方法中直接返回o.age-

this.age请同学们好好体会)。

public class Student implements Comparable<Student>{



public int compareTo(Student o) {
        // 按照age升序排列
        // 如果想让age大的对象也大,则返回this.age - o.age
        // 如果想让age小的对象大,则返回o.age - this.age
        return this.age - o.age;
    }

task7

7、定义一个集合List<Student>list3=new ArrayList<Student>();

然后向list3中加入3个Student对象,分别为:

new Student("张三",“男",22);

new Student("李四","男",20);

new Student("王五”,“男”,21);

然后调用Collections类的sort方法将该list3集合排序。

最后遍历输出集合list3中所有对象的姓名。

        List<Student> list3 =new ArrayList<Student>();
        list3.add(new Student("张三","男",22));
        list3.add(new Student("李四","男",20));
        list3.add(new Student("王五","男",21));
        for (int i = 0; i < list3.size(); i++) {
            Student stu1=list3.get(i);
            System.out.println(stu1.getName()+stu1.getAge()+stu1.getSex());

        }

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值