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

相关推荐
m0_651593912 分钟前
企业级订单系统架构设计:领域驱动 vs 数据驱动实践指南
java·系统架构·领域驱动ddd
WangMing_X3 分钟前
C#上位机软件:2.5 体验CLR实现多语言混合编程
java·开发语言·c#
青云交12 分钟前
Java 大视界 -- Java 大数据在智慧交通停车场智能管理与车位预测中的应用实践
java·数据采集·数据清洗·智慧交通·停车场智能管理·智能收费系统·车位预测
豐儀麟阁贵18 分钟前
4.4数组的基本操作
java·开发语言·数据结构·算法
crary,记忆22 分钟前
MFE: React + Angular 混合demo
前端·javascript·学习·react.js·angular·angular.js
组合缺一23 分钟前
全球首个支持 IETF JSONPath (RFC 9535) 标准的 Java 框架,Snack4-Jsonpath v4.0.0 发布
java·开发语言·json·jsonpath
智海观潮31 分钟前
JVM垃圾回收器、内存分配与回收策略
java·大数据·jvm
vx Biye_Design36 分钟前
servlet宠物医院管理系统-计算机毕业设计源码77418
java·vue.js·spring·servlet·eclipse·mybatis
程序员小凯36 分钟前
Spring Boot API文档与自动化测试详解
java·spring boot·后端
照物华39 分钟前
构建优雅的 Spring Boot Starter:Bean 注册与属性绑定的两大机制
java·spring boot