数组概述

数组概述

 

关于数组我们可以把它看作是一个类型的所有数据的一个集合,并用一个数组下标来区分或指定每一个

数,例如一个足球队通常会有几十个人,但是我们来认识他们的时候首先会把他们看作是某某对的成

员,然后再利用他们的号码来区分每一个队员,这时候,球队就是一个数组,而号码就是数组的下标,

当我们指明是几号队员的时候就找到了这个队员。 同样在编程中,如果我们有一组相同数据类型的数

据,例如有10个数字,这时候如果我们要用变量来存放它们的话,就要分别使用10个变量,而且要记住

这10个变量的名字,这会十分的麻烦,这时候我们就可以用一个数组变量来存放他们,例如在VB中我们

就可以使用dim a(9) as integer(注意:数组的下标是从0开始的,所以10个数的话,下标就是

9,a(0)=1)。 使用数组会让程序变的简单,而且避免了定义多个变量的麻烦。


 

数组的定义:

数组是相同类型数据的有序集合.

数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。

其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们.

 


 

数组的四个基本特点:

1.其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

2. 其元素必须是相同类型,不允许出现混合类型。

3. 数组中的元素可以是任何数据类型,包括基本类型和引用类型。

4. 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组

本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象

本身是在堆中的。


 

对于数组的使用 :

建议使用 dataType[] arrayRefVar 的声明风格声明数组变量。 dataType arrayRefVar[] 风格是来自
C/C++ 语言 ,在Java中采用是为了让 C/C++ 程序员能够快速理解java语言。 

 

 

在java中对数组的内存分析:

 

 

 

 

1. 声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有

关。因此,声明数组时不能指定其长度(数组中元素的个数),例如: int a[5]; //非法

创建数组时应该正确创建~

//创建一个数组

myList = new int[10];

 

2. 声明一个数组的时候并没有数组被真正的创建。

3. 构造一个数组,必须指定长度


三种初始化

 

静态初始化

除了用new关键字来产生数组以外,还可以直接在定义数组的同时就为数组元素分配空间并赋值。

int[] a = {1,2,3};

Man[] mans = {new Man(1,1),new Man(2,2)};

 

 

动态初始化

数组定义、为数组元素分配空间、赋值的操作、分开进行。

int[] a = new int[2];

a[0]=1;

a[1]=2;

 

 

数组的默认初始化

数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实

例变量同样的方式被隐式初始化。

int 默认0;boolean 默认 false ;string 默认 null;

public static void main(String[] args) {
   int[] a=new int[2];
   boolean[] b = new boolean[2];
   String[] s = new String[2];
   System.out.println(a[0]+":"+a[1]);//0,0
   System.out.println(b[0]+":"+b[1]); //false,false
   System.out.println(s[0]+":"+s[1]); //null,
null
}



 

Arrays

数组的工具类java.util.Arrays

由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从

而可以对数据对象进行一些基本的操作。


 

文档简介:

Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而"不用"使用对

象来调用(注意:是"不用" 而不是 "不能")

java.util.Arrays 类能方便地操作数组. 使用之前需要导包!


 

具有以下常用功能:

给数组赋值:通过 fifill 方法。

对数组排序:通过 sort 方法,按升序。

比较数组:通过 equals 方法比较数组中元素值是否相等。

查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。

---

 

 

 


 

常见排序算法

冒泡排序

【请写出冒泡排序代码】

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从

A到Z)错误

就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经

排序完成。

这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同

碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。


 

冒泡排序算法的原理如下:

1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2. 对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会

是最大的

数。

3. 针对所有的元素重复以上的步骤,除了最后一个。

4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

posted @ 2021-09-25 23:00  jessi呀  阅读(82)  评论(0编辑  收藏  举报