Java程序设计基础->数组(一)
作者:强哥   类别:Java开发    日期:2018-06-22 12:23:20    阅读:2484 次   消耗积分:0 分



实验简介


所谓数组,就是相同数据类型的元素按一定顺序排列的集合,把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合,这个名字称为数组名,编号称为下标。组成数组的各个变量称为数组的元素,也称为数组的分量,有时也称为下标变量。


数组是一种非常重要的数据类型,属于引用类型。数组是我们接触的第一个容器,数组是长度固定的容器。一旦定义好大小,将不能改变。由于Java中的数据类型分为两种:基本类型和引用类型。所以数组也有两种类型的:基本类型的数组和引用类型的数组(数组的数组也是引用类型的数组)


数组是具有相同的数据类型且按一定次序排列的一组变量的集合体,构成一个数组的这些变量称为数组元素。数组按下标个数分类有一维数组,二维数组等,二维以上数组通常称为多维数组。


JAVA中数组长度是不可改变的,一旦声明长度就被固定下来,不能变长,且具有相同数据类型。

 


实验目的




1.掌握数组的定义与基础使用。

2.掌握数组的基础运算,如数组复制,数组倒序,数组连接等。

3. 掌握数组的常见算法,如冒泡排序,选择排序,二分查找法等。

4. 理解JVM内存处理方式,完成数组的自动扩展实现。

 




实验流程


1. 数组的定义


数组对象是使用单独的变量名来存储一系列的值。如果你有一组数据(例如:学生姓名),存在单独变量如下所示:

String name1 = “张三”;

String name2 = “李四”;

String name3 = “王五”;

String name4 = “赵六”;

 

但是,如果我们有100名学生,1000名学生呢?我们如果定义100个或者1000个变量,整个操作也会变得非常麻烦,这个时候,我们就可以利用数组,只需要定义一个变量,便可以将这些姓名全部存起来,而且后续的操作还更加方便。创建一个数组,有三种方法。 下面的代码定义了一个名为names的数组对象:


(1) 常规方式:

String[] names = new String[4];  // 定义字符串数组

names[0] = "张三";   // 给该数组的每一个元素赋值

names[1] = "李四";

names[2] = "王五";

names[3] = "赵六";

 

(2) 简洁方式:

String[] names = {"张三","李四","王五","赵六"};  // 定义和赋值同时进行

int[] array1 = { 11, 22, 33, 44, 55, 66 };

 

一旦我们定义了数组,我们便可以通过以下几个常用方法或属性来对数组进行基本操作,如:

System.out.println(names[0]);   // 取得数组的第一个元素,下标从0开始
System.out.println(names.length);     // 获取数组的长度,即元素的数量

 

数组作为记录一组数据的媒介,在程序设计中具有非常重要的作用,也是我们日常程序开发中必然会使用到的一种类型。所以,我们很有必要对数组进行深入的理解和灵活的运用。我们先来利用练习的方式完成一些相对比较简单的操作:

 

(3) 遍历输出整个数组的值:

String[] names = {"张三","李四","王五","赵六"};

// 使用标准for循环遍历数组

for (int i=0; i<names.length; i++) {

System.out.println(names[i]);

}

// 使用for...each方式遍历数组

for (String i: names) {

System.out.println(i);

}

 

2. 获取数组最大值(针对数值型数组有效)。


int[] array = { 111, 222, 3335, 444, 555, 666 };

int max = array[0];

for (int i=0; i<array.length; i++) {

if (max < array[i]) {

max = array[i];

}

}

System.out.println("数组的最大值为:" + max);

 

3. 将数组倒序存放。


不借助于其它数组,将数组倒序存放,即让数组第1个元素与最后一个元素交换位置,让第2个元素与倒数第2个元素交换位置,以此循环,直到数组的一半为止,交换便可结束:

int[] array = { 11, 22, 33, 44, 55, 66 };

int len = array.length;

for (int i=0; i<len/2; i++) {

int temp = array[i];

    array[i] = array[len-i-1];

    array[len-i-1] = temp;

}

 

// 倒序存放后输出数组的值进行确认

for (int i: array) {

System.out.println(i);

}

 

4. 将两个数组连接在一起变成一个数组。


基本思路:定义第三个数组,长度为两个数组的长度之和,先将第一个数组的元素赋值给第三个数组的前面部分,再紧接着将第二个数组的元素继续赋值给第三个数组。代码如下:

int[] a = { 11, 22, 33, 44 };

int[] b = { 55, 66, 77, 88, 99 };

int[] result = new int[a.length + b.length];

for (int i=0; i<a.length; i++) {

result[i] = a[i];

}

for (int j=0; j<b.length; j++) {

result[a.length+j] = b[j];

}

 

//输出合并后的数组并进行验证

for (int k: result) {

System.out.println(k);

}


注:因为本节内容较长,所以特拆解为了两部分,以上是基础知识,下周将分享第二部分 关于“算法”与“数组”的知识,以及思考练习。

小伙伴们敬请期待哟~





为了答谢大家对蜗牛学院的支持,蜗牛学院将会定期对大家免费发放干货,敬请关注蜗牛学院的官方微信。


20181009_153045_341.jpg

   
版权所有,转载本站文章请注明出处:蜗牛笔记, http://www.woniunote.com/article/149
上一篇: 做过销售,跑过半马,毕业一年后转行Java开发,入职起薪6K
下一篇: 感恩有您,伴蜗牛学院一路前行~
提示:登录后添加有效评论可享受积分哦!
最新文章
    最多阅读
      特别推荐
      回到顶部