Java中的数组对象

    数组是具有相同数据类型的一组数据的集合。
    数组中的每个元素具有相同的数据类型。
    
数组在Java中就是对象,虽然基本数据类型不是对象,但是由基本数据类型组成的数组则是对象。在程序设计中引入数组可以更有效地管理和处理数据。可根据数组的维数将数组分为一维数组、二维数组……

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


      数组中的元素都可以通过下标来访问,下标从 0 开始。例如,可以通过 scores[0] 获取数组中的第一个元素 76 ,scores[2] 就可以取到第三个元素 92 啦!

    如果存取超出索引范围,就会抛出ArrayIndexOutOfBoundsException错误。

提示:  声明数组时,就Java开发人员的撰写习惯来说,建议将[]放在类型关键词之后。[]也可以放在声明的名称之后,这是为了让C/C++开发人员看起来比较友好,目前来说已不建议:
        int scores[] = {76,83,92,87};
    有关Java程序写作的一些惯例,可以参考(Google Java Style):

    http://google-styleguide.googlecode.com/svn/trunk/javaguide.html

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

三种常见的数组创建方式:


1.int[] scores=new int[5]

2.int[] scores={71,82,75,98,65}

3.int[] scores=new int[]{71,82,75,98,65}

使用循环操作 Java 中的数组
实际开发中我们经常使用循环控制数组成员的操作。如:


运行结果:

其中,  数组名.length  用于获取数组的长度

需要注意的“小毛病”:

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

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


运行时会报如下错误:
 


上面错误信息的意思是数组下标超过范围,即数组访问越界。在上面的代码中创建一个长度为 2 的数组,因此数组下标范围是 0 到 1 ,而程序中下标出现了 2 ,即 scores[2] ,超过了范围,造成数组访问越界。
 

===============================================================

 

使用 Arrays 类操作 Java 中的数组

Arrays 类是 Java 中提供的一个工具类,在 java.util 包中。该类中包含了一些方法用来直接操作数组,比如可直接实现数组的排序、搜索等(关于类和方法的相关内容在后面的章节中会详细讲解滴~~)。

Arrays 中常用的方法:

1、 排序

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

可以使用 sort( ) 方法实现对数组的排序,只要将数组名放在 sort( ) 方法的括号中,就可以完成对该数组的排序(按升序排列),如:

运行结果:


2、 将数组转换为字符串
 

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

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

运行结果为:  

输出数组nums中的元素:[25,7,126,53,14,86]
 

3、 填充替换数组元素
语法:Arrays.fill(Object[] a, int fromIndex, int toIndex, Object val);
 将指定的 Object 引用分配给指定 Object 数组指定范围中的每个元素。
填充的范围从索引 fromIndex(包括)一直到索引 toIndex(不包括)。(如果 fromIndex==toIndex,则填充范围为空。)

数组中的元素定义完成后,可通过Arrays类的静态方法fill()来对数组中的元素进行替换。该方法通过各种重载形式可完成任意类型的数组元素的替换。fill()方法有两种参数类型。下面以int型数组为例介绍fill()方法的使用方法。
 

import java.util.Arrays;//使用Arrays类方法时必须添加此行,导入包

public class ArryDemo {

	public static void main(String[] args) {
		int[] arrs = { 1, 2, 3, 4 };
		Arrays.fill(arrs, 1, 3, 6);
		for (int i : arrs) {
			System.out.println(i+"\t");
		}
	}
}

运行结果是:

1	6	6	4

 

4、 复制数组

语法:Arrays.copyOf(int[] original, int newLength);

复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度。
 

int[] arrs = { 1, 2, 3, 4 };
int[] temp1 = Arrays.copyOf(arrs, 2);// int[] temp1 = {1,2}
//copyOf()方法复制一个新的数组元素,如果复制元素大于被复制数组索引上限,则新数组超出上限的新元素会以0 初始化
int[] temp2 = Arrays.copyOf(arrs, 6);// int[] temp2 = {1,2,3,4,0,0};

 

5、 数组查询

语法:

1Arrays.binarySearch(Object[].Object key)

2)Arrays.binarySearch(Object[] a.,int fromIndex , int toIndex,Object key)
 

参数:

a - 要搜索的数组

fromIndex - 要搜索的第一个元素的索引(包括)

toIndex - 要搜索的最后一个元素的索引(不包括)

key - 要搜索的值

Arrays类的binarySearch()方法,可使用二分搜索法来搜索指定数组,以获得指定对象。该方法返回要搜索元素的索引值
 

int[] arrs = { 1, 2, 3, 4 };
int index1 = Arrays.binarySearch(arrs, 4);// index = 3
int index2 = Arrays.binarySearch(arrs, 1, 3, 3);//index = 2

 

 

 

 

注:文中部分内容摘自 慕课网,《Java学习笔记》

转载于:https://my.oschina.net/u/3421709/blog/881275

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值