4.1学习总结 拼图小游戏+集合进阶

图形化界面:GUI

创建一个新界面:

模板:

java 复制代码
import javax.swing.*;
public class test {
    public static void main(String[] args) {
        //创建一个主界面
       JFrame gameJframe = new JFrame();
       gameJframe.setSize(580,600);//设置大小先宽后高。
       gameJframe.setVisible(true);//设置窗口可见//true可见,false不可见。
    }
}

添加图片。

黑框下的电影查询系统

电影定义

java 复制代码
public class movie {
    private int id;
    private String name;
    private String actor;

    public movie(int id,String name,String actor) {
        this.id = id;
        this.name = name;
        this.actor = actor;
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getActor() {
        return actor;
    }
    public void setActor(String actor) {
        this.actor = actor;
    }
}

界面设计

java 复制代码
public class movieoperator {
    private movie[] movies;
    public movieoperator(movie[] movies){
        this.movies=movies;
    }
    public void findAllmovie(){
        for(int i=0;i<movies.length;i++){
            movie m=movies[i];
            System.out.println("电影编号是:"+m.getId());
            System.out.println("电影名称是:"+m.getName());
        }
    }
    public void findbyid(int id){
        for(int i=0;i<movies.length;i++){
            movie m=movies[i];
            if(m.getId()==id){
                System.out.println("电影编号是:"+m.getId());
                System.out.println("电影名称是:"+m.getName());
                System.out.println("电影演员是:"+m.getActor());
                return;
            }
        }
        System.out.println("没有找到该电影");
    }
}

运行

java 复制代码
import java.util.Scanner;
// 定义 Movie 类

public class system{
    public static void main(String[]args){
        System.out.println("---欢迎来到电影管理系统---");
        System.out.println("操作功能请选择1、2或者3");
        System.out.println("1.查询所有电影");
        System.out.println("2.根据电影编号查询电影");
        System.out.println("3.退出系统");

        movie[] movies = {
            new movie(1, "血观音", "文淇"),
            new movie(2, "风犬少年的天空", "张婧仪"),
            new movie(3, "我要我们在一起", "张婧仪")
        };
        Scanner sc = new Scanner(System.in);
        movieoperator mo = new movieoperator(movies);
        while(true){
            System.out.println("请输入您的选择:");
            int choice = sc.nextInt();
            if(choice==1){
                mo.findAllmovie();
            }
            else if(choice==2){
                System.out.println("请输入电影编号:");
                int id = sc.nextInt();
                mo.findbyid(id);
            }
            else if(choice==3){
                System.out.println("感谢您的使用,再见!");
                break;
            }
            else{
                System.out.println("您的输入有误,请重新输入!");
            }
        }
    }
}

集合进阶:

集合的体系结构:

++list系列集合:++添加的元素是有序、可重复、有索引

++set系列集合:++添加的元素是无序,不重复,无索引

Collection:接口

是单列集合的祖宗接口,功能是全部单列集合都可以继承使用

元素的对象:元素的具体内容。

contains()方法比较的是地址值。

如果想让比较的是内容,那么需要重写equals()方法

++迭代器遍历:迭代器不依赖索引。++

迭代器遍历示例代码:

java 复制代码
import java.util.ArrayList;
import java.util.*;
public class test {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aa");
        coll.add("bb");
        coll.add("cc");
        coll.add("dd");
        Iterator<String> it=coll.iterator();
        while(it.hasNext()){
            String str=it.next();
            System.out.println(str);
        }
    }
}

1.没有这个元素异常。

next方法:获取当前指向的元素,并且移动迭代器里面的指针。

++增强for遍历:++

示例代码:

java 复制代码
import java.util.ArrayList;
import java.util.*;
public class test {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aa");
        coll.add("bb");
        coll.add("cc");
        coll.add("dd");
        for(String s:coll){
            //s就是一个第三方变量,在循环的过程中依次表示集合中的每一个数据
            System.out.println(s);
        }
    }
}

s仅仅是个第三方变量,不会改变集合中原本的数据。

++Lambda表达式遍历:++

foreach()方法底层就是一个循环遍历,依次得到集合中的元素。

java 复制代码
import java.util.ArrayList;
import java.util.*;
import java.util.function.Consumer;
public class test {
    public static void main(String[] args) {
        Collection<String> coll=new ArrayList<>();
        coll.add("aa");
        coll.add("bb");
        coll.add("cc");
        coll.add("dd");
        //匿名内部类的形式
        /*coll.forEach(new Consumer<String>(){
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });*/
        //Lambda表达式的形式
        coll.forEach(s-> System.out.println(s));
    }
}

总结sum

相关推荐
计算机毕设VX:Fegn08951 分钟前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
R.lin13 分钟前
Java 8日期时间API完全指南
java·开发语言·python
毕设源码-赖学姐20 分钟前
【开题答辩全过程】以 高校教学质量监控平台为例,包含答辩的问题和答案
java·eclipse
旖旎夜光21 分钟前
多态(11)(下)
c++·学习
高山上有一只小老虎27 分钟前
翻之矩阵中的行
java·算法
火钳游侠41 分钟前
java单行注释,多行注释,文档注释
java·开发语言
code bean1 小时前
【CMake】为什么需要清理 CMake 缓存文件?深入理解 CMake 生成器切换机制
java·spring·缓存
selt7911 小时前
Redisson之RedissonLock源码完全解析
android·java·javascript
RestCloud1 小时前
智能制造的底层基建:iPaaS 如何统一 ERP、MES 与 WMS 的数据流
java·wms·erp·数据传输·ipaas·mes·集成平台
guslegend2 小时前
SpringBoot源码剖析
java