Java数组入门

来源:互联网 发布:永琪和知画圆房的视频 编辑:程序博客网 时间:2024/06/05 02:21

一、数组的概念

数组是一种数据结构,用来存储同一类型值的集合。通过一个整型下标可以访问数组里中的每一个值。声明数组变量时,需要指出数组类型(数组元素类型紧跟[ ])和数组变量的名字。

int[ ] a(推荐写法***因为这种写法将类型int[ ](整型数组)与变量名分开了***)

声明完需要初始化

a=new int[10];

[ ]中为数组的长度,10代表可以存10个元素。下标是从0~9;访问a[10]会出现异常“array index out of bounds“而终止执行

还有一种声明方法:

int a[ ]

二、重要方法

1.length
a.length代表数组a的长度
2.for each
for(int num:a)
       System.out.print(num);
定义与数组元素相同数据类型的变量num,用于暂存数组中的每个元素,并执行相应的语句,这个是打印在屏幕上(可以是其他语句)。该语句的功能可以用for循环替代,但是该代码更简洁,不易出错(不用考虑下标)
3.Arrays.copyOf
将数组拷贝到新数组中
int []num=Arrays.copyOf(a,a.length);
参数1是需要拷贝的数组,参数二是新数组的长度;新数组比较长的话用相应的值填充int型为0,String型为null,boolean型为false;新数组比较短的话只拷贝前面的
a=Arrays.copyOf(a,a.length);亲测是正确的
Arrays.copyOfRange(a,int start,int end)
参数1是要拷贝的数组,参数2起始点,参数3结束点(不包含)

*********************************************偷笑偷笑偷笑请无视下面这一段安静安静安静*********************************************
****想起了a++,写一段****
int a=2;
a=a++;
System.out.println(a);
打印出来的a为2,为什么呢?
因为先赋值再执行++;注意下面是重点,是重点,是重点***赋值只执行一次***
就是说++以后的值不再赋给a了,
******懵逼很久的懂了没(我也是刚懂大哭大哭大哭)*******
4.rrays.toString(a);
假设(多久没听过这个词了,怀念)a为int[]型{10,5,6,7]
将a按字符串格式输出,格式为[10,5,6,7]
5.binarySearch(a,type v)
*******要先排序,要先排序,要先排序*********
二分查找,参数1为数组,参数二为要查找的元素,有返回相应下标(只返回第一个),无返回负数值,不固定
binarySearch(a,int start,int end,type v)
参数2开始位置(包含),参数3结束位置(不包含)
6.fill(a,type v)
使用与a中元素相同数据类型的v将a中所用元素替换(将所用元素值设为v)
7.equals(a,b)
a与b的长度要一致,逐一比较a与b中的元素,对应相同,返回true

三.数组排序

1.Arrays.sort(a);
快速排序,从小到大;可以排字符串,字典顺序,与长度无关,一个字符一个字符比,谁领先谁在前
2冒泡排序
代码示例

public static void bubbleSort(int [] arr){

        for(inti=0;i<arr.length-1;i++){

            for(intj=0;j<arr.length-1-i;j++){

                if(arr[j]>arr[j+1]){

                   inttemp=arr[j];

                   arr[j]=arr[j+1];

                   arr[j+1]=temp;

                }

            }

        }

        printArrays(arr);

    }

3.选择排序

代码示例

public static void selectSort(int [] arr){

        for(inti=0;i<arr.length-1;i++){//轮数

            for(intj=i+1;j<arr.length;j++){//比较次数

                if(arr[i]>arr[j]){

                   inttemp=arr[i];

                   arr[i]=arr[j];

                   arr[j]=temp;

                }

4.插入排序

代码示例

public static void insertSort(int [] arr){

        inti,j,temp;

        for(i=1;i<arr.length;i++){

               temp=arr[i];

               for(j=i-1;j>=0&&temp<arr[j];j--){//j=-1

                        arr[j+1]=arr[j];

                }

                arr[j+1]=temp;

        }

        printArrays(arr);

    }

四、其他

遍历二维数据

for(int[]b:a)

   for(int c:b)

       (System.out.print(c));

打印二维数组

System.out.println(Arrays.deepToString(a));

输出格式[[],[],[],[],[],]



不断完善中,有不对请指出


0 0
原创粉丝点击