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

相关推荐
在努力的前端小白3 小时前
Spring Boot 敏感词过滤组件实现:基于DFA算法的高效敏感词检测与替换
java·数据库·spring boot·文本处理·敏感词过滤·dfa算法·组件开发
一叶飘零_sweeeet5 小时前
从繁琐到优雅:Java Lambda 表达式全解析与实战指南
java·lambda·java8
好望角雾眠6 小时前
第一阶段C#基础-10:集合(Arraylist,list,Dictionary等)
笔记·学习·c#
艾伦~耶格尔6 小时前
【集合框架LinkedList底层添加元素机制】
java·开发语言·学习·面试
星仔编程6 小时前
python学习DAY46打卡
学习
一只叫煤球的猫6 小时前
🕰 一个案例带你彻底搞懂延迟双删
java·后端·面试
最初的↘那颗心6 小时前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
大霞上仙6 小时前
实现自学习系统,输入excel文件,能学习后进行相应回答
python·学习·excel
JH30737 小时前
Maven的三种项目打包方式——pom,jar,war的区别
java·maven·jar
带刺的坐椅8 小时前
轻量级流程编排框架,Solon Flow v3.5.0 发布
java·solon·workflow·flow·solon-flow