Java数组

2023-05-16

对于所有的编程语言来说数组都是相对比较重要的数据结构之一。在Java中数组主要用来存放一组固定大小的相同类型的数据。
(一)、数组变量的声明
数组声明有两种写法:

  dataType[] arrName;//推荐
  dataType arrName[];//不推荐
    int[] intArr1;//推荐
    int intArr2[];//不推荐

(二)、数组的初始化
两种:
1、 静态初始化 arrName=new dataType[]{value0,value1,…,valueN}

intArr1=new int[]{1,2,3,4,5,6,7,8,9};

静态初始化时可以把 数组的声明和初始化用一条语句完成。 可以省略new dataType[]
dataType[] arrName={value0,value1,…,valueN};

int[] intArr3=new int[]{3,5,7,89};

2、动态初始化 arrName=new dataType[length];//length 初始化数组的长度(元素个数)
数组的声明和动态初始化用一条语句完成。 dataType[] arrName=new dataType[length];

    strArr1=new String[10];//10个元素
    integerArr1=new Integer[20];

(三)、数组的引用(取值、赋值)
Java中通过下标来引用数组元素 : arrName[index]; index就是元素下标,从0开始,最大值为数组长度-1;
在使用下标时一定要注意下标范围 [0,array.length-1]。如果下标大于数组length-1或小于0时,抛出数组越界异常 java.lang.ArrayIndexOutOfBoundsException

int intA=intArr1[3];//取第四个元素,从0开始 取值
System.out.println("intA="+intA);

(四)、数组的遍历
for循环
while循环
do…while循环
Java增强型for循环(只能取值,不能赋值)

int[] intArr4=new int[]{23,24,25,26,27,28,29};
        for(int i=0;i<intArr4.length;i++){
            System.out.print(intArr4[i]+"\t");
        }
        //while循环遍历
        int index=0;
        while(index<intArr4.length) {
            System.out.print(intArr4[index] + "\t");
            index++;
        }
        System.out.println();

        for(int j:intArr3){
            System.out.print(j+"\t");
        }
        System.out.println();
        
        for(String str:strArr2){
            System.out.print(str+"\t");
        }
        System.out.println(); 
        //赋值
        for(int i=0;i<integerArr1.length;i++){
            integerArr1[i]=i+1;   
        }
       for(Integer integer:integerArr1){
           System.out.print(integer+"\t");
       }
       //Java增强型for循环不能赋值,只能取值
        System.out.println();
        int[] intArr5=new int[20];
       for(int i=1;i<10;i++){
           for(int j=1;j<=i;j++){
              System.out.print(j+"*"+i+"="+(j*i)+"\t");
           }
           System.out.println();
       }

(五)、动态初始化数组的初始值
如果是基本数据类型数组,就是对应数据类型的默认值
如果是引用类型,一般为null
(六)、数组在内存中的存储方式
基本数据类型的数组,数组元素中直接存放值。
对于引用数据类型(String,类类型)的数组:元素中存放的是内存地址。
数组也是一种引用类型。
(七)、二维数组
1、二维数组的声明、初始化和引用与一维数组相似

 int[][] intArr1=new int[][]{{1,2},{3,4},{5,6}};
        int[][] intArr2={{12,13},{14,15}};
        int[][] intArr3=new int[3][4];
        int[][] intArr4=new int[][]{{1},{1,2},{5,7,8}};
        int[][] intArr5=new int[5][];//暂时不指定里面数组的大小

        //通过下标引用
        System.out.println(intArr1[1][0]);
        intArr3[0][0]=1;

2、 二维数组的for遍历赋值和Java增强型for循环赋值

for(int i=0;i<intArr4.length;i++){
            for(int j=0;j<intArr4[i].length;j++){
                System.out.print(intArr4[i][j]+"\t");
            }
            System.out.println();//换行
        }
        //赋值
        System.out.println("intArr5遍历赋值:");
        int sum=0;
        for(int i=0;i<intArr5.length;i++){
            //intArr5 内层是没有初始化的,需要先初始化
            intArr5[i]=new int[i+1];
            //遍历赋值
            for(int j=0;j<intArr5[i].length;j++){
                intArr5[i][j]=sum++;
            }
        }
        System.out.println("java增强型for循环遍历");
        for(int[] ints:intArr5){//外层
            for(int intA:ints){//内层
                System.out.print(intA+"\t");
            }
            System.out.println();
        }

3、 多维数组遍历

 //多维数组
        int[][][] intArr6=new int[4][][];
        int [][][] intArr7=new int[][][]{{{3,5,8},{2,7,5}}};

        //遍历
        for(int i=0;i<=intArr7.length;i++){
            for(int j=0;j<= intArr7.length;j++){
                for(int k=0;j<= intArr7[i][j].length;k++){
                    System.out.print(intArr7[i][j][k]+"\t");
                }
            }
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java数组 的相关文章

  • Hibernate 4 字节码增强不适用于脏检查优化

    我正在使用 Hibernate 4 3 6 并且我使用了最新的Maven 字节码增强 http vladmihalcea com hibernate 4 bytecode enhancement 使所有实体提高自我肮脏意识 我添加了mave
  • 在 Eclipse 中隐藏重复的工具栏项

    我不知道如何 但我的 STS 有重复的工具栏项目 我不知道如何删除它们 这是我复制的工具栏的样子 我想摆脱这些 我试图隐藏工具栏 但这没有帮助 有人知道如何删除重复的吗 自从升级到 Oxygen 以来 我一直遇到同样的问题 我无法可靠地重现
  • 如何抑制 Cucumber/Junit 断言堆栈跟踪

    我有一个黄瓜场景 该步骤使用assertEquals 我的结果报告显示了对最终用户不友好的堆栈跟踪 我怎样才能抑制它 Scenario Add two numbers Given I have two inputs 3 and 2 When
  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • HttpSession 内的同步是否可行?

    UPDATE 问题后立即解决 问题 通常 同步是在 JVM 内序列化并行请求 例如 private static final Object LOCK new Object public void doSomething synchroniz
  • Android CursorAdapter、ListView 和后台线程

    我一直在开发的这个应用程序有包含数兆字节数据的数据库可供筛选 许多活动只是列表视图 通过数据库中的各个级别的数据下降 直到到达 文档 即从数据库中提取并显示在手机上的 HTML 我遇到的问题是 其中一些活动需要能够通过捕获击键并重新运行带有
  • APNS(Apple 推送通知服务器)的反馈服务

    我们正在使用Java作为推送通知提供商APNS I我能够将消息发送到APNS但我不知道如何获得该消息的反馈 请帮忙 反馈服务具有类似于用于发送推送通知的接口的二进制接口 您可以通过以下方式访问生产反馈服务feedback push appl
  • Java HashMap 嵌套泛型与通配符

    我正在尝试创建包含自定义类的不同子类的哈希集的哈希映射值的哈希映射 如下所示 HashMap
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 我应该使用 JDBC getNString() 而不是 getString() 吗?

    我们正在构建一个由 Oracle 数据库支持的 Java 应用程序 我们使用 JDBC 驱动程序 访问该数据库ojdbc6 jar and orai18n jar 数据库模式主要使用以下方式存储文本列NVARCHAR2数据类型 The JD
  • javax.persistence.TransactionRequiredException:没有可用于当前线程的实际事务的 EntityManager

    我使用 Hibernate 创建了我的第一个 Spring MVC 项目 我的 DAO 层使用 JPA EntityManager 与数据库交互 GenericDao java Repository public abstract clas
  • Apache Commons VFS - 无法解析文件

    VFS 方法无法处理此 URI jboss server temp dir local outgoing配置在jboss beans xml这是决心 C Download jboss eap 5 1 1 server default tmp
  • 为什么我的 @OneToMany 属性出现主键违规?

    我有一个实体 Entity public class Student GeneratedValue strategy GenerationType AUTO Id private long id OneToMany private Set
  • 欧拉项目 45

    我还不是一名熟练的程序员 但我认为这是一个有趣的问题 我想我应该尝试一下 三角形 五边形 六边形 数字由以下生成 公式 三角形 T n n n 1 2 1 3 6 10 15 五边形 P n n 3n 1 2 1 5 12 22 35 六角
  • Java:不使用 Arrays.sort() 对整数数组进行排序

    这是我们 Java 课程的练习之一中的说明 首先 我想说我 做了我的功课 我不仅仅是懒惰地请 Stack Overflow 上的人帮我回答这个问题 在所有其他练习中 这个特定项目一直是我的问题 因为我一直在努力寻找 完美的算法 编写JAVA
  • 在Java中将日期“2020-05-22T12:51:20.765111Z”解析为Instant [重复]

    这个问题在这里已经有答案了 如何解析 2020 05 22T12 51 20 732111Z Java 中的 Instant I used LocalDateTime parse startTime DateTimeFormatter of
  • 测量 tomcat 的排队请求数

    因此 使用tomcat 您可以设置acceptCount值 默认为100 这意味着当所有工作线程都忙时 新连接被放置在队列中 直到队列满 之后它们被拒绝 我想要的是监视此队列中项目的大小 但无法确定是否有办法通过 JMX 获取此值 即不是队
  • 接口中“不能降低继承方法的可见性”的含义

    我有两个文件 public interface PrintService void print PrintDetails details class PrintDetails private String printTemplate pub
  • 膨胀类 android.support.design.widget.CoordinatorLayoute 时出错

    我正在尝试运行我的应用程序 但不断收到标题中列出的错误 我读过周围的内容 人们说尝试将主题更改为 AppCombat 主题 但这似乎不起作用 以下是我遇到的错误 Process com example jmeyer27 crazytiles

随机推荐

  • Rviz中控制机器人模型运动(arbotix)

    前言 xff1a 通过 URDF 结合 rviz 可以创建并显示机器人模型 xff0c 不过 xff0c 当前实现的只是静态模型 xff0c 如何控制模型的运动呢 xff1f 在此 xff0c 可以调用 Arbotix 实现此功能 简介 A
  • Gazebo仿真环境搭建(04)

    Gazebo 中创建仿真实现方式有两种 1 直接添加内置组件创建仿真环境 1 1启动 Gazebo 并添加组件 1 2保存仿真环境 添加完毕后 xff0c 选择 file gt Save World as 选择保存路径 功能包下 world
  • 树莓派4b安装ubuntu18.04和ros-melodic(一)

    因为用到了树莓派这个集成计算机 xff0c 所以买了张sd卡自己配置了一下环境 每个人环境都不一样 xff0c 但是大体方法流程都是一样 xff0c 我用了一周的时间配置好的 xff0c 说实话真的很麻烦所以在这里我把方法分享给大家 xff
  • 集成学习详解

    入门小菜鸟 xff0c 希望像做笔记记录自己学的东西 xff0c 也希望能帮助到同样入门的人 xff0c 更希望大佬们帮忙纠错啦 侵权立删 目录 一 集成学习的产生原因与相关定义 1 产生原因 2 相关定义 xff08 1 xff09 同质
  • 深度学习之优化算法

    入门小菜鸟 xff0c 希望像做笔记记录自己学的东西 xff0c 也希望能帮助到同样入门的人 xff0c 更希望大佬们帮忙纠错啦 侵权立删 目录 一 优化算法与深度学习 1 优化算法对于深度学习的意义 2 优化算法与深度学习的关系 3 优化
  • Redis常用命令(超详细整理)

    1 字符串string操作命令 Redis中字符串类型常用命令 xff1a SET key value 设置指定的key值 GET key 获取指定key的值 SETEX key seconds value 设置指定key的值 xff0c
  • linux/android中aplay/arecord用法以及命令

    linux xff1a 1 查看声卡 xff1a root 64 sos dom0 aplay l List of PLAYBACK Hardware Devices card 0 broxtontdf8532 broxton tdf853
  • linux怎么查看防火墙状态

    1 通过SSH连接登录linux系统 2 输入如下命令 xff1a systemctl status firewalld 3 敲回车即可查看防火墙的状态 xff0c 如下状态表示防火墙已经关闭 4 又或输入命令 xff1a service
  • 一闪一闪的星星特效效果

    首先让我们看一下一闪一闪的星星特效效果如下图 xff1a 让我们先看一下布局 xff1a span class token tag span class token tag span class token punctuation lt s
  • 实现红绿灯的效果

    首先看一下效果如下 xff1a html部分 xff1a span class token tag span class token tag span class token punctuation lt span div span spa
  • 图书管理系统数据库SQL设计思路

    1 x1f58d 需求分析 一个图书管理系统包括用户信息维护 图书馆信息 图书信息维护 书籍借出 书籍归还 借书记录 支付查询等 此系统功能用户可以借书 续借 归还 查询书籍 增加 修改和删除 2 x1f58b 需求 1 用户信息维护 xf
  • jQuery夹娃娃小游戏

    点击开始 xff0c 爪子开始往下移夹娃娃首先让我们看一下它的效果图如下 xff1a 页面布局代码如下 xff1a span class token tag span class token tag span class token pun
  • 酒店管理系统数据库SQl设计思路

    第一节 x1f58d 需求分析 一个酒店管理系统包括很多个模块 xff0c 首先我们先要分析一下需求 一 实时房态图 动态生成实时房态图 在房态图上进行房态修改 换房操作 xff0c 续住操作 选择房间进行散客 团队预定 散客 团队入住 散
  • 超经典的20道SQL题目(附加解题思路)

    最近学了SQL的内容 xff0c 老师也给我们发了练习题 xff0c 感觉在做题的过程中得到了提高 xff0c 所以将题目和我自己的答案分享一下 xff0c 希望对大家有所帮助 我使用的是SQL Server 2014 Management
  • 《酒店管理系统》项目总结

    一 项目模块 二 业务流程图 三 业务流程功能实现 1 首先客人接待 xff1a 实时房态图 xff0c 可以直观的显示出所有客房的状态 2 客人预定 xff1a 根据客人的基本资料做预订 xff0c 在房态图上的客房添加一个预定的标识 3
  • Java基础语法

    一 基础语法 Java大小写敏感 比如HelloWorld和Helloworld是不一样的 包名 Package 公司 组织 个人的域名的反向 xff0c 一般是英文字母 英文字母必须是小写 类名 xff08 ClassName xff09
  • Java中的分支语句

    一 前言 本篇文章讲解的知识点是 xff1a 分支语句 xff0c 希望大家能掌握 二 分支语句 提示 xff1a if else 语句可以看作有4种形式 xff1a 1 if 语句 代码 xff1a span class token ke
  • Linux 下ALSA音频工具amixer,aplay,arecord使用

    ALSA音频工具amixer aplay arecord ALSA音频工具编译安装 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61
  • Java中的循环语句

    一 前言 本篇文章主要讲解Java知识点是 xff1a 循环语句 希望大家读完这篇文章之后能掌握以下几种循环语句的知识点 二 循环语句 提示 xff1a 循环语句分为以下几种 xff1a 1 for循环 循环场景 xff1a 更适用于明确循
  • Java数组

    对于所有的编程语言来说数组都是相对比较重要的数据结构之一 在Java中数组主要用来存放一组固定大小的相同类型的数据 xff08 一 xff09 数组变量的声明 数组声明有两种写法 xff1a dataType span class toke