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

相关推荐
蕨蕨学AI4 分钟前
【Wolfram语言】45.2 真实数据集
java·数据库
振华说技能5 分钟前
SolidWorks学习大纲-从基础到全面精通,请看详情
学习
曦月逸霜6 分钟前
离散数学-学习笔记(持续更新中~)
笔记·学习·离散数学
im_AMBER18 分钟前
Leetcode 101 对链表进行插入排序
数据结构·笔记·学习·算法·leetcode·排序算法
予枫的编程笔记18 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
ohoy24 分钟前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp24 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
Mr -老鬼38 分钟前
Rust与Go:从学习到实战的全方位对比
学习·golang·rust
8***f39538 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
laplace012338 分钟前
# 第四章|智能体经典范式构建 —— 学习笔记(详细版)
笔记·学习