我的java学习路之数组

来源:互联网 发布:百度地图js api 缩放 编辑:程序博客网 时间:2024/06/10 13:40

为什么会有数组,因为在程序执行过程中,经常需要存储大量的数据,这样就需要一个高效的有条理的方法,那就是数组,将相同数据类型的存放在一起。

数组:存储数据的集合

声明数组:元素类型[] 数组引用变量 int[] myList;或者元素类型 数组引用变量[]  int myList[];

创建数组:元素类型 数组引用变量 = new 元素类型[数组大小] double[] myList = new double[10];

上面的意思是,创建一个数组变量名叫myList,由10个double类型元素构成

当给数组分配空间时,必须通过指定该数组能够存储元素个数来确定数组大小,所以创建数组后不可再修改大小了,而数组里的元素是通过下标访问,范围是从0到数组长度-1

我们也可以在创建时就初始化数组,如:

double[] myList new double[3];

myList[0] = 1.0;

myList[1] = 2.0;

myList[2] = 3.0;

或者:

double[] myListone = {1.0,2.0,3.0};

数组的查找:(线性查找、二分查找等)

线性查找法 使用for循环挨个遍历一遍

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

System.out.println(i);

}

或使用增强版for循环

for(int i:list){

System.out.println(i);

}

二分查找法 但前提是数组已经排序好了,二分法是每次比较后就排除一半的数组元素,所以大大提高了效率

数组的排序:(选择排序、插入排序、冒泡排序等)

选择排序 假设要按升序排列,那么会在元素中遍历一遍找出最小的放在最前面,然后在元素再找出最小的放在第一个数的后面,以此类推

插入排序 假设排序n个元素,而开始是0带n-1为止,我们认为每插入一个,0-i我们都是排列好的

for(int i = 0;i<list.length-1;i++){

  int min = list[i];

  int minindex = i;

for(int j = i+1;j<list.length;j++){

if(min > list[j]){

  min = list[j];

  minindex = j;

}

}

  if(minindex != i){

  list[minindex] = list[i];

 list[i] = min;

}

}

冒泡排序 是将第1个数和第2个数比较,大的数右移,然后比较第2个数和第3个数,大的右移,以此类推,将n个数都比较完算一趟,要比较n-1趟才能将数组排序好

为了满足更大的需求,后面还有二维、三维、多维等数组,简单用现实世界做比较的话,就是一维好比一条线,二维好比一个面有xy轴,三围好比一个立体空间有xyz轴以此类推

,而且再后面很少有用到,所以简单说明一下二维数组

二维数组声明和创建跟一维数组差不多,比如:

int [][] mar = new int[3][];

mar[0] = new int[1];

mar[1] = new int[2];

mar[2] = new int[3];

上面的意思是创建一个二维数组mar,第一维是3,对应的下标0,1,2分别有1,2,3个元素

也可以直接为某个坐标赋值:mar[1][2] = 10;

或者:int [][] mar = {{1},{11,10},{20,21,22}}


0 0