欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

第四节、数据结构

程序员文章站 2022-06-21 18:12:04
一、 概述 我的感觉是数据类型中的某些特殊数据类型组成,他是属于属性的组成之二数据类型; 二、 分类数组为相同数据类 1、数组 1.1概述 三、 型的元素组成的集合,数组元素按线性顺序排列 注:线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素( ......

一、      概述

我的感觉是数据类型中的某些特殊数据类型组成,他是属于属性的组成之二数据类型;

二、      分类数组为相同数据类

1、数组

1.1概述

三、      型的元素组成的集合,数组元素按线性顺序排列

注:线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个元素外,每一个元素都有唯一的后继元素(“一个跟一个”),可以通过元素所在位置的顺序号(下标)做标识访问每一个元素(下标从0开始,最大到元素个数-1);

1.2使用

1.2.1数组的声明

声明数据的语法一为:数据类型[] 数组名;

声明数组的语法二为: 数据类型[] 数组名 = new 数据类型 [ 正整数表示数组的长度] ;

(1)确切的数据类型:用于开辟空间大小

(2)整体的数组名字:用于对数据的引用

(3)不能缺少的“ [ ] ”

注:声明数组的时候,int[] arr 与 int arr [] 两种写法均可。常用方式为int[] arr。

1.2.2数组的初始化

(1)int [ ] arr = { 10,23,30,-10,21 } ;

(2)int[] arr;

arr = new int[]{ 10,23,30,-10,21 };

(3)int[] arr = new int[]{ 3,6,8,9 };

(4)int[] arr = new int[10]; arr[1]=1;

1.2.3数组访问

(1)获取数组的长度int[] arr = new int[]{ 3,6,8,9 };

int len = arr . length ;

(2)通过下标访问数组元素

int  temp = arr [ 2 ];   //获取第3个元素,即为6

(3)遍历数组元素

通常可选择for循环语句,循环变量作为访问数组元素的下标,即可访问数组中的每一个元素

注意:循环的计数器的变化范围从0到数组长度– 1,可通过写成“小于长度”这样的条件来防止下标越界(超出范围)。

(4)数组的复制

System.arraycopy方法用于数组复制:

public static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)

  • src:源数组
  • srcPos:源数组中的起始位置
  • dest:目标数组
  • destPos : 目标数组中的起始位置
  • length:要复制的数组元素的数量

Arrays.copyOf方法用于数组复制:

类型[ ]  newArray = Arrays.copyOf ( 类型[ ]  original , int  newLength )

  • newLength小于源数组,则进行截取;(自己通过代码演示效果);
  • newLength大于源数组,则用0或 null进行填充;

(5)数组的扩容

int [ ]  a = { 10,20,30,40,50 } ;

a = Arrays . copyOf (  a, a.length+1 );

1.2.4数组的排序

(一)概述

所谓排序,是指将数组元素按照从小到大或从大到小的顺序重新排列

(二)分类

常用排序算法有:插入排序、冒泡排序、快速排序等;

(三)冒泡排序

它的排序原则为:比较相邻的元素,如果违反最后的顺序准则(从大到小或是从小到大),则交换。可以简化理解为:第一次找到所有元素中最大(或最小)的放在最后一个位置上,不再变动;第二次找到剩余所有元素中最大(或最小)的放在倒数第二个位置上,不再变动,以此类推,直到排序完成。在进行比较时既可以采用“下沉”的方式,也可以使用“上浮”的方式实现。

(四)Arrays.sort方法用于数组排序

int[ ] arr = { 49, 81, 1, 64, 77, 50, 0, 54, 77, 18 };

Arrays.sort( arr ) ;