数组的定义

  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. Wahahahehehe 随笔归档

    [连载教程类] <RISC-V MCU 原理与应用> 1. 计算机理论模型--图灵机 2. 从图灵机到计算机 3. MCU构成及其运行原理 <RISC-V MCU 开发那些事> ...

  2. 在java路径上找不到javax.servlet.http.HttpServlet

    1.将写好的网页代码导入Java中会发现index.jsp文件开头部分出现报错 2.错误提示是找不到java路径问题 3.在项目中鼠标右键进行找到Build Path选项点击进去 4.找到Librar ...

  3. Java基础__02.数据类型

    Java中的数据类型 Java是一种强类型的语言,所有的变量都必须要先定义才能使用. Java中的数据类型分为 基本数据类型和引用数据类型. 1.基本数据类型:(8种) 数值类型 整数类型 byte: ...

  4. Java反射获取方法参数名

      正常环境下,获取不到参数的名称,使用java反射时,第一个参数名是arg0,第二个参数是arg1,与我们代码中写的对不上. java反射过程中,需要我们做好判断: if(!parameter.is ...

  5. R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视化|附代码数据

    全文链接:http://tecdat.cn/?p=30360 最近我们被客户要求撰写关于网络购物用户行为的研究报告,包括一些图形和统计输出. 随着网络的迅速发展,依托于网络的购物作为一种新型的消费方式 ...

  6. 关于iptables的一些知识

    关闭firewalld, 启用iptables:systemctl stop firewalld  && systemctl disable firewalld  # 关闭firewa ...

  7. wand,week and 算法

    一般搜索的query比较短,但如果query比较长,如是一段文本,需要搜索相似的文本,这时候一般就需要wand算法,该算法在广告系统中有比较成熟的应该,主要是adsense场景,需要搜索一个页面内容的 ...

  8. sos 扩展命令文档

    https://learn.microsoft.com/zh-cn/dotnet/framework/tools/sos-dll-sos-debugging-extension?redirectedf ...

  9. C++ NRV优化

    NRV,named return value 某个函数返回一个对象时,在外部接收 A a = Fun(); 会调用复制构造函数 会损失性能 为何不能将函数Fun定义成传入引用a,然后直接在a上进行操作 ...

  10. 在C++创建动态数组

    计算首行两数相加 #include <iostream>11 #include <vector> using namespace std; int main() { vecto ...