当前位置: 首页 > news >正文

0基础学java之Day11

二维数组

静态二位数组

理解:二维数组中包含了多个一维数组

  • 声明:

  • 数据类型 变量名;--推荐

  • 数据类型 变量名;

        //静态初始化1//String[][] names = new String[][]{{"小红","小绿","小蓝"},{"小黄","小紫","小黑","小粉"}};//静态初始化2//String[][] names;{"小红","小绿","小蓝"},{"小黄","小紫","小黑","小粉"}//names = new String[][]{};//静态初始化3String[][] names = {{"小红","小绿","小蓝"},{"小黄","小紫","小黑","小粉"}};//设置指定下标上的元素names[1][0] = "小明";
​//获取指定下标上的元素String str = names[1][0];System.out.println("获取指定下标上的元素:" + str);//获取长度System.out.println("获取二维数组中一维数组的长度:" + names.length);//2System.out.println("获取二维数组中第一个一维数组元素的长度:" + names[0].length);//3System.out.println("获取二维数组中第二个一维数组元素的长度:" + names[1].length);//4
​//遍历数组 -- forfor (int i = 0; i < names.length; i++) {for (int j = 0; j < names[i].length; j++) {System.out.println(names[i][j]);}}System.out.println("-------------------------------");//遍历数组 -- foreachfor (String[] ss : names) {for (String element : ss) {System.out.println(element);}}

动态二维数组

        //动态初始化1 -- 2表示一维数组,3表示每个一维数组元素的个数//String[][] names = new String[2][3];//动态初始化2 -- 2表示一维数组,3表示每个一维数组元素的个数String[][] names;names = new String[2][3];//设置指定下标上的元素names[0][0] = "小红";names[0][1] = "小黄";names[0][2] = "小绿";names[1][0] = "小蓝";names[1][1] = "小紫";names[1][2] = "小黑";//获取指定下标上的元素String str = names[1][0];System.out.println("获取指定下标上的元素:" + str);//获取长度System.out.println("获取二维数组中一维数组的长度:" + names.length);//2System.out.println("获取二维数组中第一个一维数组元素的长度:" + names[0].length);//3System.out.println("获取二维数组中第二个一维数组元素的长度:" + names[1].length);//3//遍历思路:依次遍历二维数组中的一维数组,再遍历一维数组中的元素System.out.println("-------------------------------");
​//遍历数组 -- forfor (int i = 0; i < names.length; i++) {for (int j = 0; j < names[i].length; j++) {System.out.println(names[i][j]);}}System.out.println("-------------------------------");//遍历数组 -- foreachfor (String[] ss : names) {for (String element : ss) {System.out.println(element);}}/*** 扩展:*      boolean bool = true; --> boolean值在内存中占4字节,因为底层使用int类型表述*      boolean[] bs = {true,false}; --> 数组里的boolean值在内存中占1字节,因为底层使用byte类型表述*/
​* 需求:使用动态初始化创建二维数组,二维数组中有两个一维数组,* 第一个一维数组有3个元素,* 第二个一维数组有4个元素public static void main(String[] args) {String[][] names = new String[2][];String[] s1 = {"小红","小绿","小蓝"};String[] s2 = {"小黄","小紫","小黑","小粉"};names[0] = s1;names[1] = s2;for(String[] ss : names){for (String element : ss) {System.out.println(element);}}
​

数组五子棋

package Test01;
​
import java.util.Scanner;
​
public class Test01 {public static void main(String[] args) {//棋盘长度int length=20;//棋盘容器String[][] gobang=new String[length][length];//棋盘符号String add = "┼";String black = "●";String white = "○";String[] nums = {"⒈","⒉","⒊","⒋","⒌","⒍","⒎","⒏","⒐","⒑","⒒","⒓","⒔","⒕","⒖","⒗","⒘","⒙","⒚","⒛"};
​//初始化棋盘for (int i = 0; i < gobang.length; i++) {for (int j = 0; j < gobang[i].length; j++) {if(j==length-1){//每行的最后一列 -- 设置行数gobang[i][j]=nums[i];}else if(i==length-1){//最后一行 -- 设置列数gobang[i][j]=nums[j];}else{gobang[i][j]=add;}}}for(String[] arr : gobang){for(String element : arr){System.out.print(element);}System.out.println();}
​boolean flag=true;//true表示黑子,false表示白子
​Scanner scan = new Scanner(System.in);boolean bool = true;while(bool){//输入坐标System.out.println("请输入"+((flag)?"黑":"白")+"子坐标:");int x=scan.nextInt()-1;int y=scan.nextInt()-1;
​//判断下标是否超出棋盘范围if(x<0||y>length-2||y<0||y>length-2){System.out.println("落子失败--坐标上已经有棋子");continue;}
​//落子String piece=(flag)?black:white;gobang[x][y]=piece;
​//打印棋盘for(String[] arr : gobang){for(String element : arr){System.out.print(element);}System.out.println();}
​//判断输赢if(method01(gobang, x, y, piece)>=5 || method02(gobang, x, y, piece)>=5 || method03(gobang, x, y, piece)>=5 || method04(gobang, x, y, piece)>=5){System.out.println(((flag)?"黑":"白")+"赢得了比赛");bool=false;}
​//置反flag=!flag;
​}//关闭资源scan.close();
​}
​//获取左右方向棋子的连接数public static int method01(String[][] gobang,int x,int y,String piece){
​int count = 1;
​//判断左横向int tempY = y;while(tempY>0){tempY--;if(gobang[x][tempY].equals(piece)){count++;}else{break;}}
​//判断右横向tempY = y;while(tempY<18){tempY++;if(gobang[x][tempY].equals(piece)){count++;}else{break;}}
​return count;}
​//获取上下方向棋子的连接数public static int method02(String[][] gobang,int x,int y,String piece){int count =1;//判断上方int tempX = x;while(tempX>0){tempX--;if(gobang[tempX][y].equals(piece)){count++;}else{break;}}
​//判断下方tempX = x;while(tempX<18){tempX++;if(gobang[tempX][y].equals(piece)){count++;}else{break;}}
​return count;
​}
​//获取右上/左下方向棋子的连接数public static int method03(String[][] gobang,int x,int y,String piece){int count =1;//判断右上int tempX = x;int tempY = y;while(tempX>0&&tempY<18){tempX--;tempY++;if(gobang[tempX][tempY].equals(piece)){count++;}else{break;}}
​//判断左下方tempX = x;tempY = y;while(tempX<18&&tempY>0){tempX++;tempY--;if(gobang[tempX][tempY].equals(piece)){count++;}else{break;}}
​return count;}
​//获取左上/右下方向棋子的连接数public static int method04(String[][] gobang,int x,int y,String piece){int count =1;//判断左上int tempX = x;int tempY = y;while(tempX>0&&tempY>0){tempX--;tempY--;if(gobang[tempX][tempY].equals(piece)){count++;}else{break;}}
​//判断右下方tempX = x;tempY = y;while(tempX<18&&tempY<18){tempX++;tempY++;if(gobang[tempX][tempY].equals(piece)){count++;}else{break;}}
​return count;}
​
}
​

相关文章:

0基础学java之Day11

二维数组 静态二位数组 理解&#xff1a;二维数组中包含了多个一维数组 声明&#xff1a; 数据类型 变量名;--推荐 数据类型 变量名; //静态初始化1//String[][] names new String[][]{{"小红","小绿","小蓝"},{"小黄","小紫…...

python主流框架Django:ORM框架关联查询与管理器

目录 注意 使用前要调用之前的模型类 F对象 Q对象 聚合函数 排序 关联查询(连表查询) 修改 删除 查询集 QuerySet 注意 使用前要调用之前的模型类 F对象 之前的查询都是对象的属性与常量值比较&#xff0c;两个属性怎么比较呢&#xff1f; 答&#xff1a;使用 "F对象&quo…...

如何有效维护您的WordPress在线商店内容:提高客户参与度与转化率的实用技巧

在电子商务领域&#xff0c;内容为王。新鲜、相关且有吸引力的内容能显著提升客户参与度和转化率。本文将探讨如何有效更新和维护您的在线商店内容&#xff0c;确保客户始终获得最佳体验。 定期更新产品信息 产品描述 产品描述是吸引客户和促成销售的关键。定期检查并更新产…...

【Java】认识异常

1.异常概念与体系结构 1.1异常的概念 在我们日常开发中&#xff0c;代码都是尽可能完善&#xff0c;但是难免会出现一些奇奇怪怪的问题。而这些奇奇怪怪的问题可能很难通过代码去控制&#xff0c;比如格式不对会报错&#xff0c;网络不好也会报错等。 在Java中&#xff0c;将…...

20 Shell Script输入与输出

标出输入、标准输出、错误输出 一、程序的基本三个IO流 一&#xff09;文件描述符 ​ 任何程序在Linux系统中都有3个基本的文件描述符 ​ 比如: ​ cd/proc/$$/fd ​ 进入当前shell程序对于内核在文件系统的映射目录中: [rootlocalhost ~]# cd /proc/$$/fd [rootlocalhos…...

HCIP-HarmonyOS Application Developer 习题(十六)

&#xff08;判断&#xff09;1、HiLink通过分布式软总线的方式连接所有设备&#xff0c;强能力设备可对弱能力设备进行设备虚拟化&#xff0c;将弱设备当做本机设备直接调用。 答案&#xff1a;错误 分析&#xff1a;HiLink 主要针对的是应用开发者与第三方设备开发者&#xf…...

没有什么可以抵达乌托邦,包括AI

本文为《智人之上:从石器时代到AI时代的信息网络简史》书评 可以说,尤瓦尔赫拉利又一次让我们获得了理解人类文明的新视角。 这是他一直以来都在做的:构建理解人类文明史的新知识框架。从此前的《人类简史》《未来简史》《今日简史》,到今天的新书《智人之上》,他一直保…...

家庭事务管理系统|基于java和vue的家庭事务管理系统设计与实现(源码+数据库+文档)

家庭事务管理系统 目录 基于java和vue的家庭事务管理系统 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师&#xff0c;阿里云…...

doris创建异步物化视图(加速数据低频变更的复杂实时计算)

异步物化视图&#xff0c;可以把那些每次实时计算非常耗时的&#xff0c;而需要计算的数据变更比较低频的这些计算创建对应的异步物化视图&#xff0c;当相关数据变化的时候触发异步任务去更新计算结果&#xff0c;或者定时计算也可以。例如该处示范为计算订单的订单标识&#…...

PhpSpreadsheet创建带复杂表头的excel数据

目录 一:背景 二&#xff1a;excel表头数据实现 三&#xff1a;excel渲染数据实现&#xff1a; 四&#xff1a;最终效果如下&#xff1a; 一:背景 最近需要统计一些数据&#xff0c;导出到excel&#xff0c;主要是一些区域的人员销售统计数据&#xff0c;涉及到复杂的表头和…...

BurpSuite渗透工具的简单使用

BurpSuite渗透工具 用Burp Suite修改请求 step1&#xff1a; 安装Burp Suite。官网链接&#xff1a;Burp Suite官网 step2&#xff1a; 设置代理 step3&#xff1a; 如果要拦截https请求&#xff0c;还需要在客户端安装证书 step4&#xff1a; 拦截到请求可以在Proxy ->…...

洞察云上风险,主机安全尽在掌握

在实战攻防演练中&#xff0c;主机一直是攻击方的最终目标。作为网络架构中的重要组成部分&#xff0c;主机包含了大量的敏感数据、关键服务和系统资源。同时主机拥有网络资源的访问权限&#xff0c;攻击者通过入侵主机获得权限&#xff0c;进而控制整个网络或系统。因此做好主…...

使用kimi编辑助手,开始搭建一个微信小程序!第一天

为什么开源&#xff1f;因为不开源&#xff0c;一个人开发小程序&#xff0c;一点突如其来的变故就会导致自己整体处于一个不舒服的状态&#xff0c;同时自己从0开始1开始搭建小程序&#xff0c;也是自己个体之间能力的验证&#xff01; 目前小程序版本&#xff1a;2.5.2 目前…...

【已解决】libev not found

学习韦东山老师的Linux应用开发实验班的JSON部分&#xff0c;在编译JSON包的过程中 报错命令&#xff1a; ./configure --hostarm-buildroot-linux-gnueabihf -prefix$PWD/tmp 错误信息&#xff1a; checking for libev support... checking for arm-buildroot-linux-gnue…...

qt QVariant详解

QVariant是Qt框架中一个功能强大的变体类&#xff0c;它提供了一种通用的方式来存储Qt对象及其他类的值&#xff0c;能够以类似于指针的方式存储任意类型的值。 一、 主要特性 通用性&#xff1a;QVariant可以存储几乎所有数据类型&#xff0c;包括基本数据类型&#xff08;如…...

再获殊荣!通付盾当选信息技术应用创新工作委员会技术活动单位称号

近日&#xff0c;通付盾凭借其在信息技术应用创新领域的卓越贡献和突出表现&#xff0c;荣获“信息技术应用创新工作委员会技术活动单位”称号。这一荣誉不仅是对通付盾在技术创新和信息安全领域努力的肯定&#xff0c;更是对其在推动国家信息技术应用创新发展中发挥重要作用的…...

PostgreSQL模板数据库template0和template1的异同点

PostgreSQL模板数据库 PostgreSQL有两个模板数据库&#xff1a;template0和template1&#xff0c;template0是不可修改的&#xff0c;而template1是可以修改的。 那模板数据库有什么作用呢&#xff1f;顾名思义&#xff0c;当做模板。 其实我们创建数据库 CREATE DATABASE 其…...

手机ip切换成全局模式怎么弄

在当今数字化时代&#xff0c;智能手机已成为我们日常生活中不可或缺的一部分&#xff0c;无论是工作、学习还是娱乐&#xff0c;都离不开它的陪伴。随着网络技术的不断发展&#xff0c;手机IP地址的切换技术也逐渐走进大众视野&#xff0c;中&#xff0c;“全局模式” 作为IP切…...

前端学习笔记(1.0)

在开发项目时&#xff0c;需要使用符号来代替书写./和../等麻烦的路径书写&#xff0c;所以就遇到了下面的问题。 输入没有路径提示 我们都知道&#xff0c;设置是通过配置vite等脚手架工具的配置文件&#xff0c;设置别名即可。 但是如果需要在使用的时候需要出现路径提示&…...

推动TMS-EEG数据预处理标准化

摘要 将非侵入性脑刺激(NIBS)技术与脑电生理活动记录相结合是神经科学领域广泛使用的方法。同时结合经颅磁刺激(TMS)与脑电图(EEG)尤其成功。但是&#xff0c;为了有效地与大脑活动进行交互&#xff0c;所需的强磁脉冲不可避免地会在同步EEG采集过程中产生伪影。因此&#xff…...

Pixel Couplet Gen 社区贡献指南:在CSDN分享你的使用心得与创意

Pixel Couplet Gen 社区贡献指南&#xff1a;在CSDN分享你的使用心得与创意 1. 为什么要分享你的使用经验 当你成功部署并体验了Pixel Couplet Gen后&#xff0c;可能会发现一些独特的用法或优化技巧。把这些经验分享出来&#xff0c;不仅能帮助其他开发者少走弯路&#xff0…...

Tetrazine-NHBoc,cas:1380500-93-5,四嗪-氨基叔丁酯的结构特点

Tetrazine-NHBoc&#xff08;四嗪-氨基叔丁酯&#xff09;是一种结合了四嗪基团和N-叔丁氧羰基&#xff08;NHBoc&#xff09;保护基的有机化合物&#xff0c;以下是对其的详细介绍&#xff1a;一、基本信息中文名称&#xff1a;四嗪-氨基叔丁酯英文名称&#xff1a;Tetrazine-…...

如何一键下载国内主流视频平台的在线视频:Video-Downloader完全指南

如何一键下载国内主流视频平台的在线视频&#xff1a;Video-Downloader完全指南 【免费下载链接】Video-Downloader 下载youku,letv,sohu,tudou,bilibili,acfun,iqiyi等网站分段视频文件&#xff0c;提供mac&win独立App。 项目地址: https://gitcode.com/gh_mirrors/vi/V…...

Phi-4-mini-reasoning效果实测:在高考数学压轴题上的分步推导与结论匹配度

Phi-4-mini-reasoning效果实测&#xff1a;在高考数学压轴题上的分步推导与结论匹配度 1. 模型能力概述 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型&#xff0c;特别擅长处理需要多步逻辑推导的数学题和逻辑题。与通用聊天模型不同&#xff0c;它被设计为直接接…...

不伤身的酒是智商税?这款轻养新标杆打破偏见

1.当“喝酒伤身”成为共识&#xff0c;谁在挑战这个铁律&#xff1f;中国人喝酒的历史&#xff0c;几乎和文明史一样长。但“喝酒伤身”这四个字&#xff0c;也像影子一样&#xff0c;从未离开过酒桌。每一次举杯&#xff0c;耳边总有人念叨&#xff1a;“少喝点”“伤肝”“伤…...

2026年AI Agent将迎来爆发!这五大趋势将重塑企业未来,你准备好了吗?

2026年AI Agent将进入规模化部署阶段&#xff0c;应用渗透率将大幅提升。文章分析了五大核心趋势&#xff1a;多智能体协同、企业级部署规模化、行业垂直化、可信性与透明度提升&#xff0c;以及人机协作模式重构。同时&#xff0c;文章也提醒企业需警惕项目失败风险&#xff0…...

从‘硬’开关到‘软’启动:拆解一个经典PMOS缓启动电路,聊聊D4、D6这些二极管到底在忙啥?

从‘硬’开关到‘软’启动&#xff1a;拆解一个经典PMOS缓启动电路&#xff0c;聊聊D4、D6这些二极管到底在忙啥&#xff1f; 在硬件设计中&#xff0c;电源管理电路如同交响乐团的指挥&#xff0c;协调着各个器件的动作节奏。而缓启动电路&#xff0c;则是这位指挥手中那根至关…...

【建议收藏】彻底剥离“机器味”:2026硬核横评10款降AI神器,实录97.98%极限降至7.46%

现在的知网、维普AIGC检测已经不同往日了&#xff0c;哪怕你逐字手打&#xff0c;只要句式稍显机械&#xff0c;系统就会判定疑似AI生成。很多同学为了降低ai率&#xff0c;把论文改成了毫无逻辑的口水话&#xff0c;结果AI率反而炸了。 别再盲目试错&#xff0c;为了帮大家在…...

HG-ha/MTools快速入门:3步部署,体验一体化桌面工具的魅力

HG-ha/MTools快速入门&#xff1a;3步部署&#xff0c;体验一体化桌面工具的魅力 1. 为什么选择MTools&#xff1f;——重新定义桌面生产力 现代开发者和创意工作者常常面临一个困境&#xff1a;需要在十几个专业软件之间来回切换&#xff0c;每个工具都有不同的操作逻辑和系…...

SENet实战:如何在PyTorch中实现Squeeze-and-Excitation模块(附完整代码)

PyTorch实战&#xff1a;手把手实现SENet中的SE模块 在计算机视觉领域&#xff0c;注意力机制已经成为提升模型性能的重要工具。今天我们将深入探讨如何在PyTorch中实现Squeeze-and-Excitation&#xff08;SE&#xff09;模块——这个让ResNet-50在ImageNet上表现接近ResNet-10…...