数组的定义

  1. 数组是相同类型数据的有序集合
  2. 数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成
  3. 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

数组的声明和创建

基本介绍

  • 首先必须声明数组变量,才能在程序中使用数组,声明数组变量的方法:
    //数组类型 数组名
    int[] nums;//(Java首选的方法)
    int nums[];//(不是首选方法,在C和C++用的形式)
  • Java语言使用new操作符来创建数组,语法如下:
    //数组类型 数组名=new 数组类型【数组大小Size】
    int[] nums=new int[10];
  • 数组是通过索引访问的,数组索引从0开始(数组下标从0开始)
  • 获取数组长度:array.length

运用实例

public class ChuangJian2 {
public static void main(String[] args) {
//数组的定义(声明):数组类型 数组名
int[] nums; //数组的创建:数组类型 数组名=new 数组类型【数组大小Size】
int[] num=new int[4]; //给上面的数组的赋值
num[0]=0;
num[1]=1;
num[2]=2;
num[3]=3;
//num[4]=4; 执行此条语句会报错:ArrayIndexOutOfBoundsException(数组越界) //计算所有元素的和
int sum=0;
for (int i = 0; i < num.length; i++) {
sum=sum+num[i];
}
System.out.println(sum);
}
}

数组的四个基本特点

  • 数组的长度是确定的,数组一旦被创建,他的大小是不可以改变的
  • 数组的元素必须是相同的类型,不允许出现混合类型
  • 数组中的元素可以是任意数据类型,包括引用数据类型和基本数据类型
  • 数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量
  • 数组本身就是对象,Java中对象在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身就在堆中
  • 数组边界:下标的合法区间:【0,length-1】,如果越界就会报错

运用实例

public class ChuShiHua3 {
public static void main(String[] args) {
//静态初始化:创建+赋值
int[] a={1,2,3,4};
System.out.println(a[0]); //动态初始化:包含默认初始化
int[] b=new int[10];
b[1]=1;
System.out.println(b[1]);
System.out.println(b[0]);//未初始赋值,默认值为0
/*数组默认初始化
数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐试初始化。
*/
}
}

数组使用

public class ShiYong4 {
//数组的使用
public static void main(String[] args) {
//普通For对数组的操作
int[] array={1,2,3,4,5};
//打印全部的数组元素
for (int i = 0; i < array.length; i++) {
System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
}
//求数组所有元素的和
int sum=0;
for (int i = 0; i < array.length; i++) {
sum=sum+array[i];
}
System.out.println("总和为:sum="+sum);
//求数组元素中的最大值
int max=array[0];
for (int i = 1; i < array.length; i++) {
if (array[i]>max){
max=array[i];
}
}
System.out.println("数组中最大的数为:"+max); //For-Each循环(增强for循环)
//打印数组全部元素
//for(定义一个数组变量(接受数组元素):需要输出的数组名)
for (int arrays:array){
System.out.println(arrays);
} //数组作为方法使用
arr(array); //把数组值反转
int[] fan=fan(array);
arr(fan);
} //数组作为方法使用
public static void arr(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
}
} //把数组值反转
public static int[] fan(int[] array){
int[] result=new int[array.length];
//反转操作
for (int i = 0,j=result.length-1; i < array.length; i++,j--) {
result[j]=array[i];
}
return result;
}
}

多维数组

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

    二维数组:int[][] a=new int[2][5];

运用实例

public class DuoWei5 {
public static void main(String[] args) {
//数组[2][5]
int[][] a={{1,2},{2,3},{3,4},{4,5},{5,6}};
//a[0] 1,2
//a[1] 2,3
//a[2] 3,4
//a[3] 4,5
//a[4] 5,6
//数组作为方法使用
arr(a[0]);//打印出a[0] 1,2 //打印数组所有元素
for (int i = 0; i < a.length; i++) {
for (int j = 0; j <a[i].length ; j++) {
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
//数组作为方法使用
public static void arr(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}

数组(Java)的更多相关文章

  1. 一维数组、二维数组——Java

    一. 一维数组 1.  数组是相同类型数据的有序集合 相同类型的若干个数据,按照一定先后次序排列组合而成 每个数组元素可以通过一个下标来访问它们 其中,每一个数据称作一个数组元素 2. 数组特点: 其 ...

  2. 线性表(存储结构数组)--Java 实现

    /*线性表的数组实现 *特点:插入删除慢需要平均移动一半的数据,查找较快 *注意:有重复和无重复的数据对应的操作会有些不同 *注意数组一旦创建其大小就固定了 *Java集合长度可变是由于创建新的数组将 ...

  3. 树形数组 java

    2^k求法 int lowbit(int x) { return x&(-x); } lowbit()的返回值就是 2^k 次方的值. 基本树形数组的模板 import java.util.* ...

  4. 流程控制与数组——Java疯狂讲义

    顺序结构 if分支语句      if{} 可以有多个else if{} else{} 可以省略 switch分支语句 while循环 do while循环 for循环 嵌套循环 控制循环结构 理解数 ...

  5. ACM-ICPC北京赛区(2017)网络赛2【后缀数组+Java//不会】

    #1579 : Reverse Suffix Array 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There is a strong data structure ...

  6. 合并K个有序数组-Java

    package com.rao.algorithm; import java.util.Arrays; /** * @author Srao * @className MergeK * @date 2 ...

  7. 多线程循环打印数组 -- Java笔记

    问题描述: 现有多个长度相同的数组,现要求使用多线程将数组内的数交替打印. 如: int[] ai = {1,2,3,4,5,6,7}; String[] ac = {"A",&q ...

  8. 13 数组 Java内存分析 三种初始化

    Java内存分析 三种初始化 静态初始化 //静态初始化 创建+赋值 int[] a = {1,2,3}; Man[] mans = {new Man(1,1),new Man(2,2)}; 动态初始 ...

  9. 有序线性表(存储结构数组)--Java实现

    /*有序数组:主要是为了提高查找的效率 *查找:无序数组--顺序查找,有序数组--折半查找 *其中插入比无序数组慢 * */ public class MyOrderedArray { private ...

  10. 优先队列(存储结构数组)--Java实现

    /*优先队列--是对队列的一种改进 *要存储的数据存在优先级--数值小的优先级高--在队头 *优先队列的实现 *1.数组:适合数据量小的情况(没有用rear+front实现) *优先队列头在items ...

随机推荐

  1. Arch安装记录(BIOS+GPT)

    尝试了下arch安装,并且尝试了下不长用的BIOS + GPT组合.都说arch的wiki强,确实很强,可惜自己的水平看不了多少. https://wiki.archlinux.org/index.p ...

  2. react useGetObjState

    import {useCallback, useRef, useState} from 'react';function useGetObjState(initialState = {}) { con ...

  3. DAC双通道模板

    #define DAC_C #include "dac.h" float DAC_DispenseA; float DAC_DispenseB; void MyDAC_Init(v ...

  4. linux并行执行线程

    资料来源: (1) https://www.jianshu.com/p/d8d58846c53f(作者:黄甫一) 1.并行任务较少时: (1) 给需要并行运行的命令行在结尾加上"&& ...

  5. spring boot2 jpa分页查询百万级数据内存泄漏

    分页查询百万级数据,查询处理过程中发现内存一直飙升,最终处理程序会挂掉,通过jvisualvm可以发现频繁ygc 和fgc ,另外通过 jmap -histo:live ${pid} 命令可以看到jp ...

  6. yestoday once more

    夏日的光为百叶窗所驯服,褪去了令人刺痛的热烈.yestoday once more~ 耳机里传来那熟悉的旋律,恍惚间仿佛回到了十五年前的那个午后,老式收音机里放着同样的歌曲,对面办公桌旁某个少年正惶恐 ...

  7. docker的生命周期

    所有博客仅用于自己学习记录,如有侵权请联系删除,文章来源于公开视频资料,如有需要请移步这里:https://www.bilibili.com/video/BV1o14y1w7b8?p=11&v ...

  8. svn 报 is not a working copy 错误

    当时提交代码 svn  报 is not a working copy ,上网查找问题  要我重新拉代码下来 然后放进修改的代码重新提交,我觉得很不合理,我看了下我提交的代码文件有80多个,我在想是否 ...

  9. Day 11 11.1 Xpath解析

    xpath解析 xpath在Python的爬虫学习中,起着举足轻重的地位,对比正则表达式 re两者可以完成同样的工作,实现的功能也差不多,但xpath明显比re具有优势,在网页分析上使re退居二线. ...

  10. js给ul下面所有的li追加类名