---恢复内容开始---

Java数组

    Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

一、一维数组

    声明数组变量(必需先声明后使用)

语法:

dataType[] arrayRefVar;

一维数组的初始化

    动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,例如

int[] arr = new int[3];//声明一个能放3个int类型数据的数组
arr[0] = 9;
arr[1] = 8;
arr[2] = 7;

    静态初始化:在定义数组电的同时就为数组元素分配空间并赋值。例如

int[] a = new int[]{0,1,2};//声明了一个存放了0,1,2这三个数的数组

数组元素的引用

    1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素

    2.数组元素的引用方式: 数组名[数组元素下标]

      数组元素下标可以是整型常量或整型表达式,如a[0], b[i], c[6*i];

      数组元素下标从0开始;

      长度为n的数组合法下标取值范围为:0——n-1;如int[] a =new int[3];可引用的数组元素为a[0]、a[1]、a[2]

    3.每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(即元素个数)

      数组一旦初始化,其长度是不可变的

---恢复内容结束---

Java数组

    Java 语言中提供的数组是用来存储固定大小的同类型元素。你可以声明一个数组变量,如 numbers[100] 来代替直接声明 100 个独立变量 number0,number1,....,number99。

一、一维数组

    声明数组变量(必需先声明后使用)

语法:

dataType[] arrayRefVar;

一维数组的初始化

    动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行,例如

int[] arr = new int[3];//声明一个能放3个int类型数据的数组
arr[0] = 9;
arr[1] = 8;
arr[2] = 7;

    静态初始化:在定义数组电的同时就为数组元素分配空间并赋值。例如

int[] a = new int[]{0,1,2};//声明了一个存放了0,1,2这三个数的数组

数组元素的引用

    1.定义并用运算符new为之分配空间后,才可以引用数组中的每个元素

    2.数组元素的引用方式: 数组名[数组元素下标]

      数组元素下标可以是整型常量或整型表达式,如a[0], b[i], c[6*i];

      数组元素下标从0开始;

      长度为n的数组合法下标取值范围为:0——n-1;如int[] a =new int[3];可引用的数组元素为a[0]、a[1]、a[2]

    3.每个数组都有一个属性length指明它的长度,例如:a.length指明数组a的长度(即元素个数)

      数组一旦初始化,其长度是不可变的

数组元素的默认初始化

    数组是引用类型,它的元素相当于类的成员变量,因此数组一经分配空间,其中的每个元素也被按照成员变量同样的方式被隐式初始化,数组的元素会有默认值,数字类型的默认值为0,对象的默认类型为null,例如:.

public class Test{
public static void main(String args[]){
int[] a = new int[5];
System.out.println(a[3]);//a[3]有默认值且默认值为0
}
}

二、多维数组

    多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:

String[][] str = new String[3][4];

    格式一(动态初始化):int[][] arr = new int[3][2];

        定义了名称为arr的二维数组,二维数组中有3个一维数组,每一个一维数组中有2个元素,这3个一维数组的名称分别为arr[0],arr[1],arr[2],如果要给第一个一维数组1脚标位赋值78,写法是arr[0][1] = 78

    格式二(动态初始化):int[][] arr = new int[3][]

        二维数组中有3个一维数组,每一个数组都是默认初始化值null(区别于格式一),可以对这3个一维数组分别进行初始化,例如arr[0] = new int[9];arr[1] = new int[8];arr[2] = new int[7];

    格式三(静态初始化):int[][] arr = new int[][]{{1,2,3},{4,5,6},{7,8,9,10}};

        定义了一个名称为arr的二维数组,二维数组中有3个一维数组,而且每一个一维数组中具体元素也都已初始化,分别为arr[0] = {1,2,3};arr[0] = {4,5,6};arr[0] = {7,8,9,10};

    注意:1.注意特殊写法情况:int[] x,y[]; x是一维数组,y是二维数组。

       2.Java中多维数组不必都是规矩矩阵方式

实例1:获取arr数组中所有元素的和,使用for的嵌套循环即可

public class Test{
public static void main(String args[]){
int[][] arr = new int[][]{
{1,2,3},
{4,5},
{6,7,8,9},
};
int len = arr.length;//数组的一维长度
int res = 0;
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
res += arr[i][j];
}
}
System.out.println(res);
}
}

输出结果为:45

数组的常见算法:1.求数组元素的最大值、最小值、总和、平均数

        2.数组的复制、反转

        3.数组元素的排序(冒泡排序为例)

public class Test{
public static void main(String args[]){
int[] arr = new int[]{4,2,7,1,3,5};
//最大值
int max = arr[0];//假设arr[0]是目前的最大值
for(int i = 0; i < arr.length; i++){
if(max < arr[i]){
max = arr[i];//存放目前的最大值
}
}
System.out.println("max:" + max); //最小值
int min = arr[0];//假设arr[0]是目前的最小值
for(int i = 0; i < arr.length; i++){
if(min > arr[i]){
min = arr[i];//存放目前的最小值
}
}
System.out.println("min:" + min); //总和、平均数
int res = 0;
for(int i = 0;i < arr.length; i++){
res += arr[i];
}
System.out.println("res:" + res);
System.out.println("avg:" + res / arr.length);
}
}

输出结果为:

Java学习day6数组的更多相关文章

  1. JAVA学习笔记--数组初始化

    JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...

  2. Java学习之数组的简单用法

    •概念 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作. 数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配: 而数组的定义语法有两种 ...

  3. java学习之数组(二)

    在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...

  4. java学习之数组(一)【内存】

    在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...

  5. java学习笔记 --- 数组

    一.Java的内存分配   A:栈内存: 存储局部变量,只要是在方法中定义的变量都是局部变量.一旦变量的生命周期结束该变量就被释放.   B:堆内存: 存储所有new出来的,及实体(对象),每一个实体 ...

  6. Java学习:数组工具类Arrays

    数组工具类Arrays java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法,用来实现数组常见的操作. public static String toString(数组) ...

  7. Java学习:数组的使用和注意事项

    数组 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可以改变 数组的初始化:在内存当中创建一个数组, ...

  8. java学习之—数组的曾删改查

    /** * 数组的曾删改查 * Create by Administrator * 2018/6/8 0008 * 上午 9:54 **/ public class HighArray { priva ...

  9. Java学习之==>数组【array】

    一.定义数组 /** * 一维数组定义 * * 为数组插入元素 */ public void case1() { // 声明 int[] arr1; // 声明+初始化 int[] arr2 = ne ...

随机推荐

  1. java代码实现H5页面

    public void getH5(HttpServletResponse response){ StringBuffer res=new StringBuffer(); res.append(&qu ...

  2. bzoj4817 & loj2001 [Sdoi2017]树点涂色 LCT + 线段树

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4817 https://loj.ac/problem/2001 题解 可以发现这个题就是 bzo ...

  3. 使用layui iframe弹层,各弹层之前的传值问题

    最近做一个后台管理系统,用到的layui,主要是使用它的弹层,但是各个弹层之前的传值经常容易搞晕,写个个博客记录一下,方便自己,也方便别人, 首先我的页面已经嵌套了好几个iframe页面了,嵌套了三个 ...

  4. 【hackerrank】Placements

    题目如下: You are given three tables: Students, Friends and Packages. Students contains two columns: ID  ...

  5. Django模板自定义标签和过滤器,模板继承(extend),Django的模型层

    上回精彩回顾 视图函数: request对象 request.path 请求路径 request.GET GET请求数据 QueryDict {} request.POST POST请求数据 Quer ...

  6. Ubuntu 16.04下使用docker部署ceph集群

    ceph集群docker部署 通过docker可以快速部署小规模Ceph集群的流程,可用于开发测试. 以下的安装流程是通过linux shell来执行的:假设你只有一台机器,装了linux(如Ubun ...

  7. Leetcode 14. Longest Common Prefix(水)

    14. Longest Common Prefix Easy Write a function to find the longest common prefix string amongst an ...

  8. JSP XML数据处理

    JSP XML数据处理 当通过HTTP发送XML数据时,就有必要使用JSP来处理传入和流出的XML文档了,比如RSS文档.作为一个XML文档,它仅仅只是一堆文本而已,使用JSP创建XML文档并不比创建 ...

  9. 动态淀粉质(划掉)题单&简要题解

    简介 动态点分治的思想:还不太清楚诶怎么办. 大概是通过降低树高来降低每次修改和询问的复杂度吧,还可以把树上一个连通块的信息统计到一个点(重心)上.具体实现方式和普通的静态点分治没有太大的区别,只是把 ...

  10. CG-CTF | 综合题

    开场就是一个js混淆,直接丢到console里面 然后根据tip查头: 看到这个tip,一开始还以为要考注入了,用访问历史来进行注入,后来发现是我高估这题了,,,: