Java学习笔记 1.3数组

数组

数组的概念

数组由同一类型的对象或着基本数据组成,并封装在同一个标识符下。

  • 数组是对象
    • Java数组需要动态初始化
    • 数组可以赋值给Object类的变量
    • 在数据中可以调用Object的所有方法
    • 每个数组都有一个成员变量:length
  • 数组元素
    • 数组中的变量都成为数组元素
    • 数组元素没有名字,需要通过数组名以及下标进行访问
  • 数组的创建和使用
    • 数组的声明
    • 数组的创建
    • 数组元素的初始化
    • 使用数组

数组引用的声明

  • 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间
  • 不能直接使用,必须经过初始化后才能使用

数组声明举例:

//Type[] arratName
int[] intArray;
String[] stringArray;

//Type arrayName[]
int intArray[];
Stirng stringArray[];

数组的创建

  • 用关键字new构成数组的创建表达式,可以指定数组的类型和数组元素的个数。个数可以是啊常量也可以是变量
  • 基本类型数组的每个元素都是一个基本元素,引用类型的数组每个元素都是一个引用

数组创建举例

arrName = new Type[componets number];
//例如:
int[] ai;
ai = new int[10];
String s;
s = new String[3];
//或可以将数组的声明与创建一并执行
int ai[] = new int[10];
//可以在一条声明语句中创建过多个数组
String[] s1 = new String[3], s2 = new String[8];

数组元素的初始化

  • 声明数组时,给出了数组的初始值,程序会利用初始值对每个元素进行初始化

    int a[]={22,33,44,55};
    
  • 创建数组时,如果没有指定初始值,数组便会被赋予默认初始值

    • 基本类型初始值为0
    • 引用类型初始值为NULL

使用数组

  • 引用数组的一个元素:
    arrayName[index]

    • 数组下标必须是int,short,byte或者char。
    • 下标从零开始计数
  • 元素个数即为数组的长度,可以用过arrayName.length得到

  • 数组的最大下标为length-1,若果数组越界将范围错误,程序立即停止

  • 数组名是一个引用:

    public class Arrays {
        public static void main(String[] args)
        {
            int[] a1 = {1,2,3,4,5};
            int[] a2;
            a2=a1;
            for(int i=0;i<a2.length;++i)
            	a2[i]++;
            for(int i=0;i<a1.length;++i)
            	System.out.println("a1["+i+"]="+a1[i]);   
        }
    }
    
运行结果:

1547474998087

  • 字符串引用构成的数组——每个元素都是引用

    public class ArrayOfStringDemo {
    	public static void main(String[] args) {
    		String[] anArray = {
    			"String One","String two","String Three"
    		};
    		for(int i=0;i<anArray.length;++i)	{
    			System.out.println(anArray[i].toLowerCase());
    		}
    	}
    }
    

    结果:

    1547475266441

复制数组或数组的部分元素

public static void arraycopy(Object source, int srcIndex, Object dest, 
							int destIndex, int length)

1547475383110

public class ArrayCopyDemo {
	public static void main(String[] args) {
		char[] copyFrom = {'d','e','c','a','f','f','e',
							'i','n','a','t','e','d'};
		char[] copyTo = new char[7];
		System.arraycopy(copyFrom,2 , copyTo, 0, 7);
		System.out.println(new String(copyTo));
		}
}

输出结果:

1547475762420


多维数组

​ int[][] gradeTable;

1547475876438

​ gradeTable[0][0] = 99

二维数组的声明和构造——多种方式

- int [][] myArray;
- int [][] myArray = new int[3]\[5];
- int [][] myArray = {{8,1,2,2,9},{1,9,4,0,3},{0,3,0,0,7}};
  • 二维数组的长度及每行的长度
public class UnevenExample3 {
	public static void main(String[] args) {
		//声明构造一个二维数组
		int[][] uneven = 
			{{1,9,4},
			 {0,2},
			 {0,1,2,3,4}
			};
		//数组的长度(行数)
		System.out.println("Length of array is:"+uneven.length);
	}
}

运行结果:

1547476333435

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值