Java(八)(可变参数,Collections,小案例:斗地主游戏小案例:斗地主游戏,Map集合,Stream流)

目录

可变参数

Collections

小案例:斗地主游戏

Map集合

 Map的常用方法

map集合的遍历

键找值

键值对

Lambda 表达式

HashMap底层原理

集合的嵌套

Stream流

获取集合或数组的Stream流

Stream流的方法


可变参数

就是一种特殊的形参,定义在方法和构造器的形参列表中,格式是: 数据类型...参数名称

外部可以接受多个该类型的参数,也可以接收这个参数的数组

而他的内部是一个数组

一个形参列表只能由一个可变参数

可变参数要放到形参列表的后面

public class zheng {
    public static void main(String[] args) {
        test(); // 不传数据
        test(10); // 传一个数据给它
        test(10,20,30); // 传输多个数据给他
        test(new int[]{10,20,30,40,50}); // 传输一个数组给可变参数
    }

    public static void test(int...number) {
        // 可变参数在方法内部,本质上是一个数组
        System.out.println(number.length);
        System.out.println(Arrays.toString(number));
        System.out.println("---------------------");

    }
}

Collections

工具类: 类名.方法  有static修饰的

public class zheng {
    public static void main(String[] args) {
        // 1.public static <T> boolean addAll(Collection<? super T> c,T...elements):
        // 为集合批量添加数据
        List<String> names = new ArrayList<>();
        Collections.addAll(names, "张三","王五","李四","张麻子");
        System.out.println(names);

        // 2.public static void shuffle(List<?> list) 打乱List集合中的元素顺序
        Collections.shuffle(names);
        System.out.println(names);

        // 3.public static <T> void sort(List<T> list) 对List集合中的元素进行升序排序
        List<Integer> list = new ArrayList<>();
        list.add(3);
        list.add(5);
        list.add(2);
        Collections.sort(list);
        System.out.println(list);

        
      }
}

 下面时设置表示方法

// 比较的对象不能排序的时候,那就方法重写
        List<Student>Student = new ArrayList<>();
        Student.add(new Student("李小谦",18,100));
        Student.add(new Student("李玉刚",58,90));
        Student.add(new Student("李德华",48,60));
        Collections.sort(Student);
        System.out.println(Student);

        // 实现接口的匿名内部类
        Collections.sort(Student, new Comparator<bag5.Student>() {
            @Override
            public int compare(bag5.Student o1, bag5.Student o2) {
                return Double.compare(o1.getScore(),o2.getScore());
            }
        });

上面的方法1在Student中的实现类是

上面就是相当于用sort方法的时候,给出了Student具体按照什么指标来排序

小案例:斗地主游戏

main类

package bag5;

import org.w3c.dom.ls.LSOutput;

import java.sql.SQLOutput;
import java.util.*;
import java.util.function.Consumer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class zheng {
    public static void main(String[] args) {
        // 1.牌类
        // 2.房间
        // 3.创建一个房间
        Room room = new Room();
        // 3.启动游戏
        room.start();


      }

    }

创建一个Card类,用来创建Card对象

package bag5;

public class Card {
    private String color;
    private String number;
    private int size;

    public Card() {
    }

    public Card(String color, String number, int size) {
        this.color = color;
        this.number = number;
        this.size = size;
    }

    @Override
    public String toString() {
        return color+number;}

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
}

创建一个房间类

package bag5;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Room {
    // 必须有一副牌
    private List<Card> allCards = new ArrayList<>();
    List<Card> lingHuChong = new ArrayList<>();
    List<Card> lixiaoqian = new ArrayList<>();
    List<Card> zhangsanfeng = new ArrayList<>();
    public Room()
    {
        // 1. 做出54张牌,存入集合allCards
        // a. 点数: 个数确定,类型确定
        String[] n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值