JavaOOP学习

这篇博客探讨了Java集合框架,包括Set、List、Queue和Map的区别及使用。重点讲解了ArrayList的动态增长特性,以及如何通过迭代器进行查询。此外,还展示了如何实现Comparable接口对Book对象按价格排序,并演示了在ArrayList中插入、删除和查找元素的操作。最后,通过一个程序示例展示了如何根据用户输入的成绩对Map中的学生记录进行排序并显示。
摘要由CSDN通过智能技术生成

第九天

不知道为什么标题不能加入时间了,以后日期就写在内容中了。

今日学习的集合,上笔记:

集合框架:
1.数组与集合的区别:
    集合没有固定长度,数组有
    集合可以存入映射对象(键值对)
2.集合主要类型:Set(集),List(列表),Queue(队列),Map(映射)
3.集合存放的是对象的引用而非对象本身,集合不能存储基本数据类型
4.ArrayList(List子类):大小可变,自动增长,可以动态增加,减少元素
5.不同的集合 增删的方法不同,但是查都可以通过迭代器查询。
6.数组与集合可以互相转化(可以通过Arrays,Collections操作)
7.添加泛型后只能在集合中存入泛型指定内容,否则可以存入任意内容
 

今日题目:

1.编写一个Book类,该类至少有name和price两个属性。
该类要实现Comarable接口,在接口的compareTo()方法中规定两个Book类实例的大小关系为二者的price属性的大小关系。
在主函数中,选择合适的集合类型存放Book类的若干个对象,然后创建一个新的Book类的对象,并检查该对象与集合中的哪些对象相等。

package java_1216;

public class Book implements Comparable{
    String name;
    double price;

    public Book(String name, double price) {
        this.name = name;
        this.price = price;
    }

    @Override
    public int compareTo(Object o) {
          Book b=(Book)o;
        return (int)(this.price-b.price);
    }
}
package java_1216;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class TestBook {
    public static void main(String[] args) {
        List<Book> list=new ArrayList<Book>();
        list.add(new Book("果冻",20));
        list.add(new Book("旺仔小馒头",10));
        Book book=new Book("果冻",20);
         Iterator<Book> i=list.iterator();
         while (i.hasNext()){
             Book book1=i.next();
             if (book1.compareTo(book)==0) {
                 System.out.println(book1.name+"相同");
             }
         }
    }
}

2.编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。

package java_1216;

import java.util.*;

public class Demo01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String name;
        int score;
        Map<String,Integer> map=new HashMap<String,Integer>();
        do {
            System.out.print("请输入姓名:(输入end结束)");name=sc.next();
            System.out.print("请输入分数:");score=sc.nextInt();
            map.put(name,score);
        }while (!name.equals("end"));
     List<Map.Entry<String,Integer>> list=new ArrayList<Map.Entry<String,Integer>>(map.entrySet());
     Collections.sort(list, new Comparator<Map.Entry<String, Integer>>() {
         @Override
         public int compare(Map.Entry<String, java.lang.Integer> o1, Map.Entry<String, java.lang.Integer> o2) {
             return o1.getValue().compareTo(o1.getValue());
         }
     });
        for (Map.Entry<String,Integer> m:list) {
            System.out.println(m.getKey()+":"+m.getValue());
        }
    }
}

3.创建一个list,在list中增加三个工人,基本信息如下:
姓名   年龄   工资
zhang3   18   3000
li4      25   3500
wang5    22   3200
在li4之前插入一个工人,信息为:姓名:zhao6,年龄:24,工资3300
删除wang5的信息

package java_1216;

public class Worker {
    String name;
    int age;
    double price;

    public Worker(String name, int age, double price) {
        this.name = name;
        this.age = age;
        this.price = price;
    }
}
package java_1216;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Demo02 {
    public static void main(String[] args) {
        List list=new ArrayList();
        list.add(new Worker("zhang3",18,3000));
        list.add(new Worker("li4",25,3500));
        list.add(new Worker("wang5",22,3200));
        list.add(1,new Worker("zhao6",24,3300));
        list.remove(3);
          Iterator i =list.iterator();
          while (i.hasNext()) {
              Worker w= (Worker) i.next();
              System.out.println(w.name+" "+w.age+" "+w.price);
          }
    }
}

呼~真累~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值