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

相关推荐
suimeng67 分钟前
ChromeDriver的常用方法
java·selenium
yanxy5129 分钟前
【TS学习】(18)分发逆变推断
前端·学习·typescript
Hellyc23 分钟前
SpringMVC响应数据:页面跳转与回写数据
java·前端·学习
嘵奇37 分钟前
深入解析 Spring Boot 测试核心注解
java·spring boot·后端
癞皮狗不赖皮41 分钟前
Java安全基础-反射机制
java·反射机制·java安全基础
Qian_ShouYi43 分钟前
MATLAB 代码学习
学习·算法·matlab
别惊鹊1 小时前
(三)安装和使用Maven
java·maven
进取星辰1 小时前
PyTorch 深度学习实战(32):多模态学习与CLIP模型
pytorch·深度学习·学习
云上艺旅1 小时前
K8S学习之基础七十二:Ingress基于Https代理pod
学习·云原生·容器·https·kubernetes
兢兢业业的小白鼠1 小时前
Java高级JVM知识点记录,内存结构,垃圾回收,类文件结构,类加载器
java·开发语言·jvm·tomcat