一、什么是数组

数组可以理解为是一个巨大的“盒子”,里面可以按顺序存放多个类型相同的数据, 比如可以定义 int 型的数组 scores 存储 4 名学生的成绩:

int[] scores={76,83,92,87};

其中,数组的名称为scores,每一个值都有一个索引,从0开始,可以通过 scores[0] 获取数组中的第一个元素 76。

二、数组的使用

Java 中操作数组只需要四个步骤:

1. 声明数组

语法:数组类型[] 数组名;或者 数组类型 数组名[];

如:int[] scores;//存储学生成绩的数组,类型为整型;

string name[];//存储学生姓名的数组,类型为字符串;

2. 分配空间

简单地说,就是指定数组中最多可存储多少个元素。

语法:数组名=new 数组类型[数组长度];

如:scores=new int[5];//长度为5的整数数组;

或者将步骤1,2合并:int scores[]=new int[5];必须注意:此处数值长度5必须指定。

其中,scores的类型时数组类型,框里面的元素的类型才是int类型。

3. 赋值

分配空间后就可以向数组中放数据了,数组中元素都是通过下标来访问的, 例如向 scores 数组中存放学生成绩:

scores[0]=89; scores[1]=79;

4. 处理数组中的数据

在 Java 中还提供了另外一种直接创建数组的方式,它将声明数组、分配空间和赋值合并完成,如

int [] scores={78,97,88,78}; 等价于:int[] scores=new int[]{78,97,88,78};必须注意此处数值长度必须为空 .

注意: 1、 数组下标从 0 开始。因此 scores[3] ,表示数组中的第 4 个元素,而并非第 3 个元素

2、 数组下标的范围是 0 至 数组长度-1 ,如果越界访问,就会报错

3、 数组名.length :用于获取数组的长度

三、使用 Arrays 类操作 Java 中的数组

Arrays 中常用的方法:

1.升序排序

语法:  Arrays.sort(数组名);

2.将数组转换为字符串

语法:  Arrays.toString(数组名);

可以使用 toString( ) 方法将一个数组转换成字符串,该方法按顺序把多个数组元素连接在一起, 多个元素之间使用逗号和空格隔开,

例子:

运行结果为:  输出数组nums中的元素:[25,7,126,53,14,86]

四、使用 foreach 操作数组

foreach 并不是 Java 中的关键字,是 for 语句的特殊简化版本,在遍历数组、集合时, foreach 更简单便捷。从英文字面意思理解 foreach 也就是“ for 每一个”的意思。

语法:for(元素类型 元素变量:遍历对象){

执行的代码;}

五、Java 中的二维数组

1、 声明数组并分配空间

语法:数组类型[][] 数组名=new 数组类型[行个数][列个数];

如:int[][] num=new int[2][3];//定义一个两行三列的二维数组

2、 赋值 二维数组的赋值,和一维数组类似,可以通过下标来逐个赋值,注意索引从 0 开始。

语法:数组名[行的索引][列的索引]=值;

或者在声明数组的同时为其赋值 数组类型[][]数组名={{值1,值2...},{值11,值22}};

3、 处理数组 二维数组的访问和输出同一维数组一样,只是多了一个下标而已。在循环输出时, 需要里面再内嵌一个循环,即使用二重循环来输出二维数组中的每一个元素。如:

运行结果:123

456

---------------------------------------

局部变量:定义在方法中、for循环等的变量叫做局部变量

栈内存(栈区):数据(局部变量)使用完毕,会自动释放

堆内存(堆区):使用new进行定义的变量,才会在堆中开辟新空间,否则在栈中开辟 。堆中的每个数据都有地址

Java之数组了解的更多相关文章

  1. java中数组的相关知识

      1. 2.数组的命名方法 1)int[]ages=new int[5]; 2) int[]ages; ages=new int[5]; 3)int[]ags={1,2,3,4,5}; 4)int[ ...

  2. Java基础——数组应用之StringBuilder类和StringBuffer类

    接上文:Java基础——数组应用之字符串String类 一.StringBuffer类 StringBuffer类和String一样,也用来代表字符串,只是由于StringBuffer的内部实现方式和 ...

  3. JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"

    将JSon格式的"数组"字符串转换为Java对象"数组". 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“n ...

  4. java将数组中的零放到末尾

    package com.shb.java; /** * 将数组中的0放到数组的后边,然后原来的非零数的顺序不改变 * @author BIN * */ public class Demo2{ publ ...

  5. Java中数组的特性

    转载:http://blog.csdn.net/zhangjg_blog/article/details/16116613 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具 ...

  6. 在java 中,数组与 List<T> 类型的相互转换

    在java中,数组与List<T> 之前进行互相转换,转换方法可总结为以下几种: 一. 将 数组转换成List<T> 1. 使用 Collections 的addAll 方法 ...

  7. Java RGB数组图像合成 ImageCombining (整理)

    /** * Java RGB数组图像合成 ImageCombinning (整理) * * 2016-1-2 深圳 南山平山村 曾剑锋 * * 注意事项: * 1.本程序为java程序,同时感谢您花费 ...

  8. java对象数组

    问题描述:     java 对象数组的使用 问题解决: 数组元素可以是任何类型(只要所有元素具有相同的类型) 数组元素可以是基本数据类型 数组元素也可以是类对象,称这样的数组为对象数组.在这种情况下 ...

  9. Java中数组的初始化方式

    Java中数组的初始化方式    初始化方式有两种: 1.静态初始化:初始化时由程序猿显式指定每一个数组元素的初始值,由系统指定数组长度 2.动态初始化:初始化时由程序猿仅仅指定数组长度,由系统为数组 ...

  10. Java动态数组

    其中java动态数组: Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList. ...

随机推荐

  1. [转] 经典SQL练习题

    原题目来自qaz13177_58_CSDN博客 http://blog.csdn.net/qaz13177_58_/article/details/5575711/#sql 只是更新个人答案供参考 表 ...

  2. 横向不间断滚动DIV

    横向不间断滚动DIV,5个一组,js控制,自动生成任意组显示 <!DOCTYPE html> <html> <head> <meta http-equiv=& ...

  3. asp.net页面生命周期请求管道19个事件

    HttpContext: ecb→ HttpWorkerRequest→HttpContext HttpApplicationFactory.获取了HttpApplication实例之后. (1)Be ...

  4. 【转】eclipse luna 无法安装veloeclipse问题

    转载地址:https://code.google.com/p/veloeclipse/issues/detail?id=47 I tried to install veloeclipse 2.0.8 ...

  5. 学习Git的总结与体会

    学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...

  6. TTradmin v1.1 - 免端口映射穿透任何内网、基于radmin核心的即时远程协助

        TTradmin 是一款免端口映射可直接穿透任何内网,基于radmin核心的即时远程协助软件.在使用的时候只需要保证“协助端”和“被协助端”使用同一个验证码即可实现安全便捷的远程控制,不需要进 ...

  7. Netty系列之Netty高性能之道

    转载自http://www.infoq.com/cn/articles/netty-high-performance 1. 背景 1.1. 惊人的性能数据 最近一个圈内朋友通过私信告诉我,通过使用Ne ...

  8. CEF源码编译和生产库的使用

    CEF版本是Branch 2171 开发环境是VS2012 查看一下libcef_dll_wrapper工程属性,确定Code Generation 选择MTD(Debug) 或者MT(Release ...

  9. 复旦大学2015--2016学年第一学期(15级)高等代数I期末考试第八大题解答

    八.(本题10分)  设 $V$ 为数域 $K$ 上的 $n$ 维线性空间, $\varphi$ 为 $V$ 上的线性变换. 子空间 $C(\varphi,\alpha)=L(\alpha,\varp ...

  10. C#利用HttpWebRequest进行post请求的示例(HTTPS)

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.N ...