java基础4.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 ) ;

向成为千里马奋斗,为伯乐打call;
原文地址:https://www.cnblogs.com/mhy666/p/9330547.html