展示多部电影信息

遍历集合可以采用增强for循环,lambda表达式,以及Iterator三种方法

需要注意的是lambda表达式,Iterator在取出某一电影全部信息时需要重写toString方法,否则打印的是地址,(Iterator在取出某一电影部分信息时不重写toString方法也能打印出内容而非地址)

使用iterator需要定义新的Iterator对象(例:Iterator<Movies> oo=movie.iterator();)

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;

public class Iterable1 {
    public static void main(String[] args) {
        Collection<Movies> movie=new ArrayList<>();
        movie.add(new Movies("绿皮书",9.2,"a"));
        movie.add(new Movies("阿甘正传",8.6,"a"));
        movie.add(new Movies("肖申克的救赎",8.9,"c"));
        System.out.println(movie);//不重写toString方法,打印的是地址
        //法一:
        for (Movies m : movie) {
            System.out.println(m.getName());//不重写取出的也是内容而非地址
            System.out.println(m.getScore());
            System.out.println(m.getActor());
        }
        System.out.println("-----------------");
        //法二:
        Iterator<Movies> oo= movie.iterator();
        while (oo.hasNext()) {
            Movies a=oo.next();//.getActor();加上后面展示的是演员信息
            System.out.println(a);//取部分信息时不重写取出的也是内容而非地址
                                 //全部信息时取的是地址
//            double b=oo.next().getScore();
//            System.out.println(b);
//            System.out.println(oo.next().getScore());
//            System.out.println(oo.next().getActor());
        }
        //法三:
        movie.forEach(System.out::println);//不重写toString方法,打印的是地址


    }
}
class Movies{
    private String name;
    private double score;
    private String actor;

    public Movies() {
    }

    public Movies(String name, double score, String actor) {
        this.name = name;
        this.score = score;
        this.actor = actor;
    }

    public String getName() {
        return name;
    }

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

    public double getScore() {
        return score;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public String getActor() {
        return actor;
    }

    public void setActor(String actor) {
        this.actor = actor;
    }

    @Override
    public String toString() {
        return "Movies{" +
                "name='" + name + '\'' +
                ", score=" + score +
                ", actor='" + actor + '\'' +
                '}';
    }
}

好的,我可以帮助你完成这个任务。以下是一个简单的示例代码,你可以根据你自己的数据进行修改: ```python import matplotlib.pyplot as plt import numpy as np # 三部电影的名称 movies = ['电影A', '电影B', '电影C'] # 三部电影近三天的票房总和 total_box_office = [250, 320, 180] # 三部电影近三天的每日票房 day1_box_office = [80, 100, 60] day2_box_office = [90, 120, 50] day3_box_office = [80, 100, 70] # 绘制票房总和的横向柱形图 plt.figure(figsize=(6, 4)) plt.barh(movies, total_box_office, color=['r', 'g', 'b']) plt.xlabel('票房总和') plt.title('三部电影票房总和') plt.grid() plt.show() # 绘制每日票房的横向柱形图 plt.figure(figsize=(6, 4)) bar_width = 0.25 index = np.arange(len(movies)) plt.barh(index - bar_width, day1_box_office, height=bar_width, color='r', label='Day 1') plt.barh(index, day2_box_office, height=bar_width, color='g', label='Day 2') plt.barh(index + bar_width, day3_box_office, height=bar_width, color='b', label='Day 3') plt.xlabel('票房') plt.yticks(index, movies) plt.title('三部电影近三天票房') plt.legend() plt.grid() plt.show() # 绘制叠加柱状图 plt.figure(figsize=(6, 4)) plt.barh(movies, day1_box_office, color='r', label='Day 1') plt.barh(movies, day2_box_office, color='g', left=day1_box_office, label='Day 2') plt.barh(movies, day3_box_office, color='b', left=np.array(day1_box_office) + np.array(day2_box_office), label='Day 3') plt.xlabel('票房') plt.title('三部电影近三天票房') plt.legend() plt.grid() plt.show() ``` 这段代码会生成三个横向柱形图,分别展示三部电影的票房总和、三部电影近三天的每日票房以及三部电影近三天票房的叠加柱状图。你可以根据自己的数据进行修改和调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mshkkhhgybzlc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值