6.数组(遗留)

我这些学习笔记,记录的都是我自己认为的知识点,可能以后再看的时候还要翻书,但是可以用来定位到准确的书中示例的位置,减少翻书重找的时间,利于自身知识体系的搭建。                   self-transcendence

6  数组

java把数组看做对象,数组中每个元素具有相同的数据类型,数组分为一维数组和二维数组

6.2  一维数组的创建和使用

一维数组是一组相同类型数据的线性集合

6.2.1  创建一维数组

一维数组的两种创建方式:

1.先声明,再用new进行内存分配

int attr[];

int[] attr;

扫描二维码关注公众号,回复: 1844298 查看本文章

声明数组之后给出了数组名字和元素的数据类型,接下来要为数组分配内存空间。

在为数组分配内存空间时,必须指定数组的长度。

attr[] = new int[5];

使用new为数组分配内存时,整型数组中各个元素的初始值为0

2.声明的同时为数组分配内存

int attr[] = new int[5];

6.2.2  初始化一维数组

int attr[] = new int[]{1,2,3,4,5};

6.3  二维数组的创建和使用

1.先声明,再用new进行内存分配

int attr[][];

attr = new int[2][4];//二维数组attr是由两个长度为4的一维数组构成

attr     length=2     length=4

        a[0]         a[0][0]  a[0][1]  a[0][2]  a[0][3]

        a[1]         length=4     

a[1][0]  a[1][1]  a[1][2]  a[1][3]

2.声明的同时分配内存

attr = new int[2][];

attr[0]= new int[2];

attr[1] = new int[3];

attr     length=2     length=2

        a[0]         a[0][0]  a[0][1]

        a[1]         length=4     

a[1][0]  a[1][1]  a[1][2]

6.3.2  二维数组初始化

int attr[][] = {{1,2},{10,5}};

attr[1][1]的值为5

赋值方式是attr[x][y] = 20;例如attr[1][1] = 20;

6.4  数组的基本操作

java.util包的Arrays包含了操作数组的各种方法。

遍历二维数组用双层for嵌套,通过length属性获得数组的长度。

数组中的元素可以用Arrays类的fill()来替换:

.fill ( int[] a,int value);//把数组中所有元素的值改为value

.fill ( int[] a,int index, int last, int value);//把数组中index下标到last-1下标的值改为value

数组升序排序可以用Arrays类的sort ( )方法实现。

.sort ( attr);//attr数组名。javaString类型数组的排序算法是根据字典编排顺序排序,数字排在字母前,大写字母排在小写字母前。

.copyOf ( attr,int length);//attr原数组,length新数组长度,新的长度大于旧的,则用0填充,新的长度小于旧的,则从旧的第一个开始截取新的长度。

.copyOfRange ( attr, int index , int last);//从旧数组的index下标(包括)开始复制到last的下标位置(不包括)。last可大于旧的长度,index必须在旧数组的长度范围内。

.binarySearch ( Object[] a, Object key);//在数组a中搜索key,如果key存在,则返回下标,否则返回-1或者“-”(插入点),插入点是搜索键将要插入数组的哪一点,即第一个大于此键的元素下标。

.binarySearch ( Object[] a, int index, int last, Object key);//用查询方法必要先排序,来获得准确的索引值,如果key存在,返回索引,否则返回-1或者“-”(插入点)。如果范围中所有元素都小于指定的键,则为last(注意,这保证了当且仅当此键被找到时,返回的值将大于等于0

int attr[] = new int[]{4, 25, 10};

Arrays.sort(attr);

int index = Array.binarySearch(attr, 0 ,1 ,8);

上面代码中变量index的值是元素“8”在数组中索引在0~1内的索引位置。由于在指定的范围内并不存在元素“8”,index的知识“-”(插入点)。如果对数组进行排序,元素“8”应该在“25”的面前,因此插入点应是元素“25”的索引值2,所以index的值是-2。如果数组中的所有元素都小于指定的键,则为attr.length(注意,这保证了当且仅当此键被找到时,返回的值将大于等于0

6.5  数组排序算法

6.5.1  冒泡排序

1.基本思想

2.算法示例

3.算法实现

6.5.2  直接选择排序

1.基本思想

2.算法示例

3.算法实现

6.5.3  反转排序

1.基本思想

2.算法示例

3.算法实现


猜你喜欢

转载自blog.csdn.net/selftranscendence/article/details/80883803