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

Java【数组】

数组是一组类型相同的数据(基本类型或引用类型)的集合,数组中每个数据称为元素。数组也是Java的对象,一旦创建,数组长度就固定了。

创建数组

1.声明一个数组类型的引用变量(数组变量),但是不能指定数组长度

int[] scores;     //合法
String names[];   //合法//int scores[30]; //非法

可以用符号“...”声明数目可变参数

//有一个max()方法要从一组int类型的数组中找出最大值,但是数组的数目不固定(2~6之间)
public class Varable{public static int max(int... datas){ //datas为可变参数if(datas.length == 0)return -1;  //为传入任何参数int result = 0;for(int a: datas)if(result<a)result=a;return result;}public static void main(String[] args){System.out.println(max(5));System.out.println(max(5,8,9,3));System.out.println(max(new int[]{4,10,7,3}));  //传入数组System.out.println(max());}
}

2.用new创建数组对象

  • 按大小为数组分配内存
  • 为每个数组元素赋予数字类型的默认值
  • 返回数组对象的引用
int[] scores = new int[50];
System.out.println(scores[0]);    //打印0
String[] names = new String[50];
System.out.println(names[0]);     //打印null

数组初始化

int[] x = new int[]{5,6,7,8,9};     //合法
//int[] x = new int[5]{5,6,7,8,9};  //非法,不能在[]中指定数组长度int[] y = new int[5];
for(int i=0; i<y.length; i++)y[i] = y.length - i;   //合法

访问数组

//遍历数组
/**报数Game:有编号的玩家轮流报数1~3,每次报道3的出局,按顺序进行,问最后剩下的是哪个玩家1、isActive数组记录玩家是否在圈内,若isActive[i]=false,那么编号为i+1的玩家已出局2、为了跟踪报数状态:定义了三个变量size:表示当前在圈内的玩家数count:表示当前的报数,为3时,会将其置0point:当前正在报数的玩家在isActive数组中的索引位置,为n时,重置0 */public class Game{public static int play(int n){boolean[] isActive = new boolean[n];    //记录每个玩家是否在圈//初始化开局玩家信息for(int i = 0; i < isActive.length; i++)isActive[i] = true;int size = n;     //圈内玩家数int count = 0;    //当前报数int point = 0;    //当前报数玩家的索引while(size > 1){  //循环报数至圈内只剩下一人if(isActive[point]){  //当前轮到的玩家在圈内count++;  //报下一个数if(count == 3){     //如果当前报数已到3,处理count、isActive[point]count = 0;isActive[point] = false;  //玩家出局size--;     //玩家规模减一}}point++;    //轮到下一个报数人if(point == n) //如果以及轮完一圈point = 0;  //从第一个玩家开始再来报数}int last = 0;for(int i = 0; i < n; i++)if(isActive[i])last = i + 1;return last;}public static void main(String[] args){System.out.println(play(20));  //打印}
}

多维数组

//求转置矩阵
public class Reversal{public static int[][] change(int[][] from){int rows = from.length;     //原始矩阵行数int cols = from[0].length;  //原始矩阵列数int[][] to = new int[cols][rows];  //转置后矩阵for(int i = 0; i < from.length; i++)  //循环行for(int j = 0; j < from[i].length; j++)  //循环列to[j][i]=from[i][j];return to;}public static void main(String[] args){int[][] from = {{11,22,33,44},{55,66,77,88},{99,92,23,38}};int[][] to = change(from);for(int i = 0; i < from.length; i++){ for(int j = 0; j < from[i].length; j++)  System.out.print(to[i][j]+" ");System.out.println();}}
}

http://www.lryc.cn/news/431080.html

相关文章:

  • xAI巨无霸超级计算机上线:10万张H100 GPU,计划翻倍至20万张
  • python集合
  • 算法打卡 Day29(回溯算法)-复原 IP 地址 + 子集 + 子集 Ⅱ
  • LeetCode 热题100-17 缺失的第一个正数
  • 基于CloudflareSpeedTest项目实现git clone加速
  • 对与单纯post方法写项目的修改成baseservlet方法
  • 北京地铁换乘站人流量监控与图像识别技术优化
  • Day16_0.1基础学习MATLAB学习小技巧总结(16)——元胞数组
  • C#自定义控件的放置与拖动
  • python circular import python循环导入问题
  • kafka集群安装
  • SQL通用语法、SQL分类以及DDL
  • 静态链接和动态链接
  • 构建智能门禁安防系统:树莓派 4B、OpenCV、SQLite 和 MQTT 的应用(代码示例)
  • 基于 Konva 实现Web PPT 编辑器(二)
  • 【开源免费】基于SpringBoot+Vue.JS在线竞拍系统(JAVA毕业设计)
  • Qt TabWidget添加多个窗口,实现分页窗体布局
  • HarmonyOS开发实战( Beta5版)合理使用动画丢帧规范实践
  • 基于BiLSTM-CRF的医学命名实体识别研究(下)模型构建
  • 5.sklearn-朴素贝叶斯算法、决策树、随机森林
  • VMWARE VCENTER6.7 VCSA通过Web5480进行版本升级
  • GIT使用常见问题
  • 内核链表
  • 行空板上YOLO和Mediapipe视频物体检测的测试
  • 【Spring Boot 3】【Web】ProblemDetail
  • 市占率最高的显示器件,TFT_LCD的驱动系统设计--Part 1
  • Linux基础 -- 获取CPU负载信息
  • Django 中的用户界面 - 创建速度计算器
  • spring security 如何解决跨域的
  • 日志系统前置知识