关于List的常用方法和扑克牌练习

List应用——模拟扑克牌(构造扑克牌及洗牌)       一.首先分析扑克牌,它的主要信息就是花色以及牌面值,所以可以写一个类来完成对扑克牌信息的封装。   二.对扑克牌信息封装好后就是对扑克牌进行一系列操作了,如创建一副牌以及洗牌操作等。    ①构造扑克牌:构造扑克牌其实很简单,一共有四个花色,每个花色有13张牌,所以两层for循环就可以,外层for循环用来循环四个花色,内层for循环就是1-13的牌面,每循环一次就将一张牌添加到Arra... 阅读详情
package package10_29;

import java.util.ArrayList;
import java.util.List;

public class TestList {
    public static void main(String[] args) {
        //1.创建list的实例
        List<String> list = new ArrayList<>();
        //2.插入元素
        list.add("C语言");
        list.add("Java");
        list.add("C++");
        list.add("Python");
        System.out.println(list);
        //3.按下标访问,高效
        System.out.println(list.get(0));//因为运算符重载,不能list[0]这样访问
        list.set(0,"PHP");//set不能插入新的元素,只能修改现有元素,也就是下标不能越界。
        System.out.println(list.get(0));

        //4截取部分内容
        System.out.println(list.subList(1,3));//前闭后开
        List<String> list2 = list.subList(1,3);
        list2.set(0,"Php");
        System.out.println(list);
        System.out.println(list2);
    }
}

这里需要注意,如果改了list2发现list1也变了,说明list2是list1的浅拷贝。

[C语言, Java, C++, Python]
C语言
PHP
[Java, C++]
[PHP, Php, C++, Python]
[Php, C++]

说明sublist是一份浅拷贝

		//5重新构造
        List<String> list2 = new ArrayList<>(list);
        list2.set(0,"PHP");
        System.out.println(list);
        System.out.println(list2);

[C语言, Java, C++, Python]
[PHP, Java, C++, Python]

这样new一个新链表,这样修改list2,并不会影响list。这样就是深拷贝。

扑克牌练习

package package10_29;

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

class Card{
    public String suit;//花色
    public String rank;

    public Card(String suit, String rank) {
        this.suit = suit;
        this.rank = rank;
    }

    @Override
    public String toString() {
        return "(" + suit + " " + rank + ")" ;
    }
}

public class CardDemo {
    public static final String[] SUITS = {"♥","♠","♣","♦"};
    public static List<Card> buyPoker(){
        List<Card> poker = new ArrayList<>();
        for (int i = 0; i < 4; i++) {
            //负责构建四种花色
            for (int j = 2; j < 10; j++) {
                poker.add(new Card(SUITS[i],j + ""));
            }
            poker.add(new Card(SUITS[i],"J"));
            poker.add(new Card(SUITS[i],"Q"));
            poker.add(new Card(SUITS[i],"K"));
            poker.add(new Card(SUITS[i],"A"));
        }
        return poker;
    }
    public static void main(String[] args) {
        //1.创建一副牌
        System.out.println("创建一副牌");
        List<Card> poker = buyPoker();

        //2.洗牌操作
        Collections.shuffle(poker);

        //3.发牌(有三个人,每个人5张牌)
        //第一个List表示三个玩家,每个玩家手里五张牌,再用一个List表示
        List<List<Card>> players = new ArrayList<>();
        //这三个新增的列表表示三个玩家的三幅手牌
        players.add(new ArrayList<Card>());
        players.add(new ArrayList<Card>());
        players.add(new ArrayList<Card>());
        //把牌发给三个玩家
        for(int carIndex = 0;carIndex < 5;carIndex++){
            for (int playerIndex = 0;playerIndex < 3;playerIndex++){
                //players.get(playerIndex).add(poker.remove(0));
                List<Card> playerCards = players.get(playerIndex);
                Card curCad = poker.remove(0);
                playerCards.add(curCad);
            }
        }

        //4.输出玩家手牌
        System.out.println("玩家1:");
        System.out.println(players.get(0));
        System.out.println("玩家2:");
        System.out.println(players.get(1));
        System.out.println("玩家3:");
        System.out.println(players.get(2));
    }
}

【Java】List 目录 ??初识泛型 ??包装类 ??装箱与拆箱 ??List的使用 ??练习 ??小结 ??初识泛型 什么是泛型? 泛型本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。 为什么要使用泛型? 我们之前所了解的顺序表,里面只能放int类型的数据,但是如果我们要存放其他数据类型的数据,该怎么办呢? 我们在了解多态过程中已知一个前提,基类的引用可以指向子类的对象。 其次,我们也已知 Object 是 java 中所有类的祖先类。 那么,要解决上述问题,我们很自然的想到一个解决办法,将我们的顺序表的.. 阅读详情

相关推荐

利用集合和String常用方法实现扑克牌生成、排序

扑克牌的生产以及排序

Jhin_9264的博客 497

List练习(扑克牌)

package Java0320; import java.util.ArrayList; import java.util.Collections; import java.util.List; class Card{//这是一张牌 private String rank;//牌的点数 private String suit;//牌的花色 public Card(String rank, String suit){ this.rank = rank;

weixin_47331155的博客 340

【学习笔记】java基础高级综合练习题--扑克牌

最近学了很多的知识,脑容量小,记不清,还是得做做练习! 今天就做了一个扑克牌的练习 首先呢..这个逻辑一定要非常清楚,我们要想做出一副扑克牌,必定要弄清楚每一张牌和整的一副牌 首先分析 一张扑克 一张牌里面有什么?相信大家看图(图不是我写的)就应该懂了,一张扑克有属于它自己的花色(红桃,黑桃,梅花,方块) 以及自己的点数(A,2,3…..J,Q,K)就这两种属性,对吧! 那么花色...

Kuls 1482

List 扑克牌部分

package DIMSELF.java_0411; import java.util.ArrayList; import java.util.List; import java.util.Random; public class Poker { //模拟创建一副牌,洗牌和发牌 //加上static内部类,当创建card对象时,就不依赖poker的实例 //就可以在poker内部类的静态方法中创建实例 static class Card { publi

weixin_43564343的博客 239

STM32F405实战:手把手教你实现永磁同步电机无感FOC控制(附完整工程文件)

本文详细介绍了基于STM32F405微控制器实现永磁同步电机无感FOC控制的完整实战方案。文章从硬件搭建、CubeMX配置入手,逐步讲解了FOC核心算法、SVPWM调制,并重点阐述了如何结合HFI高频方波注入与滑模观测器(SMO)实现全速域无感控制。内容涵盖算法原理、代码实现、参数整定及调试技巧,并附有完整工程文件,为开发者提供从理论到实践的全面指导。

sun99的博客 266

setoolkit克隆网站获取用户信息

一、环境 kali、DVWA 二、步骤 首先打开kali,输入setoolkit 依次选择选项1-选项2-选项3-选项2 输入钓鱼网站的网址(默认为本地网址) 输入要克隆的网址URL 这里我的网址如图,将网址复制 然后模拟攻击场景,攻击者向受害者发送了一条钓鱼链接,此链接与DVWA的登陆页面完全一样,受害者点击之后并进行登陆信息 点击login之后,用户信息就被setool...

BeatRex的博客 2997

使用Arraylist实现斗地主发牌,洗牌,牌的排序

public class Card { private String color; private String size; private int index; public Card() { } public Card(String color, String size, int index) { this.color = color; this.size = size; this.index = ind

weixin_46011971的博客 380

ubuntu22.04 安装部署 openclaw

ubuntu22.04 安装部署 openclaw

nalanxiaoxiao2011的博客 984

54张扑克,存放在一个List .实现List中扑克排序,要求采用的顺序为:大王,小王,黑桃A-K, 红心A-K, 草花A-K,方块A-K.

方式一: package com.james.test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; public class

javaxash的专栏 2656

将Python爬取的数据导入钉钉多维表

摘要:本文介绍将Python爬取的数据导入钉钉多维表的完整解决方案。首先通过requests库爬取数据并解析为结构化格式,然后使用钉钉开放平台API对接多维表。关键步骤包括获取app_key、app_secret等凭证,通过OAuth2获取access_token,以及批量写入记录。文章详细说明了参数获取位置、字段类型匹配、权限配置等注意事项,并提供了错误处理建议和性能优化方法。适用于需要将网络数据同步到钉钉多维表的开发场景。

IT深耕十余载,大道之简 2131

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1263

List练习—扑克牌

List练习

欢迎来到 晨 的博客 293

YOLOv11改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度

ASF-YOLO是一种基于YOLO的新颖框架,结合了空间和尺度特征以实现准确和快速的分割。其中,注意力尺度序列融合模块。

Limiiiing的博客 4391

基于List的代码练习——发扑克牌

基于List的代码练习——发扑克牌 思路: (发牌部分有疑惑,再瞅瞅) import java.util.ArrayList; import java.util.List; import java.util.Random; class Card{//card类用于定义扑克牌类型 public int rank;//牌面值 public String suit;//花色 ...

weixin_46009158的博客 251

滴滴数据分析80道面试题及参考答案

常见的模型评价指标有准确率、召回率、F1 值、均方误差、均方根误差、R 方等。准确率是指模型预测正确的样本数占总样本数的比例,它反映了模型预测的准确性。召回率是指模型预测为正例的样本中实际为正例的比例,它衡量了模型对正例的捕捉能力。F1 值是准确率和召回率的调和平均数,综合考虑了两者的平衡。均方误差是预测值与真实值之差的平方的平均值,它衡量了模型预测值与真实值的平均偏离程度。均方根误差是均方误差的平方根,与均方误差类似,但更直观地反映了误差的大小。

大模型大数据攻城狮的专栏 1698

Unity 热更 之 【YooAsset 热更】几分钟快速了解 YooAsset [功能面板]、以及 [基础代码] 说明

Unity 的资源管理系统不断发展,以适应不同项目的需求和解决特定的问题。AssetBundle 和 Addressable Asset System 是 Unity 官方提供的资源管理解决方案,而 YooAsset 是第三方提供的资源管理系统。简化的API和易用性YooAsset 可能提供了更简单直观的 API,使得资源加载和管理更加容易。对于不熟悉 Addressable 或 AssetBundle 复杂配置的开发者来说,YooAsset 可能是一个更易于上手的选择。性能优化。

仙魁XAN 2955

List的练习:扑克牌

练习-扑克牌 //创建牌 public class Card { public int rank;//牌数 public String suit;//花色 //重写java 的方法,将花色和牌数连接起来 @Override public String toString(){ return String.format("[%s %d]",su...

nnmmyy1234567的博客 312

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

用扑克游戏操练List常用方法

线性表 List(线性表)是一个接口,ArrayList(顺序表)和LinkedList(链表)继承了List。 List的常用方法: 方法签名 功能描述 add(E e) 把e这个元素,尾插到线性表中 add(int index,E e) 把e这个元素,插入到index所在位置,同时,index之后的所有元素,必须"逻辑"后移 remove(int index) 删除index这个下标的元素,同时,index之后的所有元素,必须"逻辑"前移 remove(Object o) 删

zSoaring的博客 2330

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

List练习(扑克牌与杨辉三角)

List线性表常见方法: 一.扑克牌: 规则: 1.买牌:按花色从 A-K 排列 2.洗牌 3.三名玩家按顺序轮流抽取五张牌 4.判断玩家是否持有“红桃A”,若有则该玩家输了 4.判断玩家手中是否有某张牌时, hands的类型就是 List<List<Card>>,它的元素的类型是 List<Card>。 扑克牌的实现 Java...

July 298

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

扑克牌-练习

package test; public class Test8_Init { public static void main(String[] args) { String[] str1 ={"方块A","梅花A","红心A","黑桃A","方块k","梅花k","红心k","黑桃k"}; String[] str2 ={"甲","乙","丙","丁"}; int i

720

Java利用List创建扑克牌

因为要建立卡牌的List,所以要先创建一个类 public class Card { int rank; String color; public Card(int rank, String color) {//构造方法 this.color = color; this.rank = rank; } @Override ...

yiqqYi的博客 584

java-List

此文章主要为大家讲解了泛型的基本知识,为什么要泛型,泛型是干嘛的,它的背后逻辑是什么。以及什么是包装类,程序猿发明包装类的初衷是什么。最后则为大家讲解了List里面常用方法的举例以及如何更好地使用它们,还为大家以扑克牌为例题进一步讲解List方法的用处等等……

xinhang10的博客 2750

list下的简易扑克牌游戏

public class PokerGame { //定义三个用户 String[] names={"张三","李四","王五"}; //在一局中所有牌的数量 List cards = new ArrayList(); private String[] types = {"♠","♥","♣","♦"}; private String[] values = {"8","9","10",

aDaixiaoju的博客 532

java集合类如何调用_java在不同类中调用一个集合,发牌方法调用扑克牌类里的list为0???...

源自:7-1 简易扑克牌游戏java在不同类中调用一个集合,发牌方法调用扑克牌类里的list为0???--------首先是扑克牌类的list集合, ----------------------------------------------------------package cardGame;import java.util.ArrayList;import java.util.Collec...

weixin_42113456的博客 344

java实现扑克牌排列

** 扑克牌排列** 下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。 操作过程是: 手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,… 如此循环操作,直到剩下最后一张牌也放在桌子上。 下面代码的目的就是为了求出最后桌上的牌的顺序。 初始的排列如果是A,2,3…K,则最后桌上的顺序为: [2, 4, 6, 8, 10, Q, A, 5, 9...

南 墙 1万+
上一篇: Map和Set的基本操作
下一篇: MySQL表的增删改查2(进阶)
周末的丢
博客等级 码龄7年 197粉丝 331原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值