一维数组的创建及使用

数组是具有相同类型的一组数据的集合。例如,球类的集合——足球、篮球、乒乓球等;在程序设计中,可以将这些集合称之为数组。数组中的每个元素具有相同的数据类型。在Java中同样将数组看做是一个对象,虽然基本数据类型不是对象,但是由基本数据类型组成的数组却是对象。一维数组实质上是一组相同类型数据的线性集合,当在程序中需要处理一组数据,或者传递一组数据时,可以用这种类型的数据。
####1. 创建一维数组
数组作为对象允许使用new关键字进行内存分配。在使用数组之前,必须首先定义数组变量所属的类型。一维数组的创建有两种形式。

a. 先声明,再用new运算符进行内存分配

声明一维数组有以下两种方式:

数组元素类型 数组名字[];
数组元素类型[] 数组名字;

数组元素类型决定了数组的数据类型。它可以是Java中任意的数据类型,包括简单类型和组合类型。数组名字为一个合法的标识符,符号“[ ]”指明该变量是一个数组类型变量。单个"[ ]"表示要创建的数组是一个一维数组。

int arr[]; //声明是int型数组,数组中的每个元素都是int型值
String str[]; //声明String数组,数组中的每个元素都是String型数值

声明数组后,还不能立即访问他的任何元素,因为声明数组只是给出了数组名字和元素的数据类型,要想真正的使用数组,还要为它分配内存空间。在为数组分配空间时必须指明数组的长度,为数组分配内存的语法格式为:

数组名字  = new 数组元素的类型[数组元素的个数];

数组名字:被连接到数组变量的名称。
数组元素的个数:指定数组中的个数,即数组的长度。

使用new关键字分配数组时,必须指定数组元素的类型和数组元素的个数,即数组的长度。

//为数组分配内存
arr = new int[5];

以上代码表示要创建一个有5个元素的整型数组,并且将创建的数组对象赋给引用变量arr,即引用变量arr引用这个数组。如下图所示:
这里写图片描述

在图中arr为数组名称,方括号“[ ]" 中的值为数组的下标。数组通过下标来区分数组中的不同元素。数组的下标是从0开始的。由于创建的数组arr中有5个元素,因此数组中元素的下标为0~4.
使用new关键字为数组分配内存时,整型数组中各个元素的初始值都为0。
#####2. 声明的同时为数组分配内存
这种创建数组的方法是将数组的声明和内存的分配合在一起执行。语法如下所示:

数组元素的类型 数组名 = new 数组元素的类型[数组元素的个数];
//声明并为数组分配内存
int month[ ] =new int[12];

上面代码创建数组month,并指定了数组的长度为12。
这里写图片描述

####2. 初始化一维数组

数组与基本数据类型一样可以进行初始化操作。数组的初始化操作可分别初始化数组中的每个元素。数组的初始化有以下两种形式:

int arr[]=new int[]{1,2,3,4,5}; //第一种初始化方式
int arr2[] ={12,34,29,22}; //第二种初始化方式

从中可以看出,数组的初始化就是包括大括号之内用都好分开的表达式列表。用括号( , )分割数组中的元素,系统自动为数组分配一定的空间。用第一种初始化方式,将创建5个元素的数组,依次为1、2、3、4、5。第二种初始化方式,会创建4个元素的数组,依次为12、34、29、22。

####3. 使用一维数组
在Java集合中一维数组是常见的一种数据结构。通过使用一维数组来对其进一步了解。

public class Day{//创建类
	public static void main(String[] args){//主方法
		//创建并初始化一维数组
		int day[]=new int[]{31,28,31,30,31,30,31,30,31,31,30,31};
		//利用for循环将信息输出
		for(int i=0; i <12;i++){
		//输出的信息
			System.out.println((i+1)+"月有"+day[i]+"天");
		}
	}
}

运行结果如下:
这里写图片描述

//声明
int[] a;
int b[];

//创建数组对象
a = new int[4];
b = new int[5];

//动态初始化:
for(int i=0;i<a.length;i++){
	a[i]=i*12;
}

//静态初始化
int c[]= {23,43,56,78}; //内存中开辟空间的同时赋值;长度是4,索引范围是0~3

Car[] cars = {
		new Car("奔驰"),
		new Car("宝马"),
		new Car("奥迪")
	      };


Car c2 = new Car("奔驰");

//接下来,可以验证上面的两个奔驰是否相等
System.out.println(c2== cars[0]);

我们可以看到一个结果是:false,可以得出是不相等的。

Java字符串就是Unicode字符序列,例如串“Java”就是4个Unicode字符J,a,v,a组成的。Java没有内置的字符串类型,而是在标准的Java类库中提供了一个预定义的类String,每个用双引号括起来的字符串都是String类的一个实例。

public class TestString{
	public static void main(String[] args){
		String str = new String("abcd");
		String str2 = new String("abcd");
		System.out.println(str.charAt(2));
		System.out.println(str2.equals(str)); //比较内容是否相等	
		System.out.println(str2== str);			
		String str3 = "def";s
		String str4 = "def"'
		System.out.println(str3.equals(str4));
		System.out.println(str3 == str4);		
		String str6 = "abcd,ede,dede,de,deded";
		//按逗号进行切割
		String[] strArray  = str6.split(",");
		for(i=0;i<strArray.length;i++){
			System.out.println(strArray[i]);
		}
		String str7 = "  aa  bb  ";
		//去除首尾空格进行计算
		String str77 = str7.trim();
		System.out.println(str77.length());	
	}
}

补充String中的几个方法:

public class TestString{
	public static void main(String[] args){
		//忽略大小写的区别
		System.out.println("Abc".equalsIgnoreCase("abc"));
		//从左向右进行查找
		System.out.println("Abcbd".indexOf('b'));
		//从左向右进行查找,找到最后一个的
		System.out.println("Abcbd".lastIndexOf('b'));

		//以什么开始
		System.out.println("Abcbd".startsWith('Ab'));
		//以什么结束
		System.out.println("Abcbd".endsWith('bd'));
		
		//转小写
		System.out.println("Abcbd".toLowerCase());
		//转大写
		System.out.println("Abcbd".toUpperCase());
			
	}
}
  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值