java 数组

1、什么叫数组

用于连续存放长度一定的某一固定数据类型的空间(相同数据类型的集合)

2、为什么要用数组

数组可以连续存储数据,也可以存储连续有序的数据,方便数组操作。

3、数组使用四步骤

声明 int[] a;  分配空间 a=new int[元素个数];  赋值 a[下标]=1;  使用 a[0]+=1;(其中,赋值不是必要的,可以省略)

赋值省略情况下:

  数组的缺省值:int=0;  double=0.0;  float=0.0;  char= ;(空值符)  String=null;  boolean=false;

4、数组3种定义方式

  1) int[] a=new int[元素个数];(最频繁使用)

  2) int[] a={1,2,3,4,5};(大括号内包含明确的值)

  3) int[] a=new int[]{1,2,3,4,5};(该方式是2)中的扩充了new int[]结构,而这个结构的中括号[]不能自定义长度)

5、引用数据类型与值类型

6、值类型与引用类型的区别

  首先,引用类型是没有范围的,程序员可以自定义类型。常见的引用类型:String、Scanner、Random、数组

  1)值类型与数组引用类型

    

  2)值类型与String引用数据类型

上面两种比较都用到了java的GC 垃圾回收机制,该机制会在堆中的空间没有对应的栈中的变量引用,会定时清理该垃圾空间,当然,该空间的数据一并清除。具有时效性、滞后性

7、java空间分类

一共6种:栈、堆、字符串池、方法池、常量池、静态池

8、数据常见的操作

a)增

int[] array1=new int[3];

array1[0]=1;

array1[1]=2;

b)删  (难点)

1)先查找要删除元素的下标

int a={76,65,87,56,90};

删除值小于60的元素

int static=-1;//打标记,static=-1表示该数组内没有小于60的元素

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

  if(a[i]<60){

  static=i;

  }

 }

if(static!=-1){

System.out.println("该元素存在:"+i);

}else{

System.out.println("该元素不存在");

}

2)元素平移

for(int i=static;i<s.length-1;i++){

  a[i]=a[i+1];

}

3)备份数据

int[] a1=a;//重新声明新数组a1,将a数组的地址复制给a1

4)重新分配空间

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

a=a1[i];

}

5)还原数据

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

System.out,print(i+" ");

}

c)改

d)查  (最复杂,使用最频繁)

9、排序

1)冒泡排序

口诀:N个数字来排序,两两相比较大靠前,外层循环N-1,内层循环N-1-i

2)选择排序

口诀:N个数字来排序,两两相比较大靠前,外层循环N,内层循环N

3)直接插入排序

4)快速排序

引用Array.sort();方法

10、数组拷贝

System.arraycopy(源数组,起点,目标数组,起点,长度);

11、二维数组

用for嵌套循环,外层循环控制行,内层循环控制列

原文地址:https://www.cnblogs.com/dopaer/p/6509569.html