数组

来源:互联网 发布:黑米软件下载 编辑:程序博客网 时间:2024/06/18 17:50

一维数组初始化:
动态初始化:数组声明且为数组元素分配空间与赋值的操作分开进行
静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

二维数组初始化:
格式1(动态初始化):int[][] arr = new int[3][2];
格式2(动态初始化):int[][] arr = new int[3][];
格式3(静态初始化):int[][] arr = new int[][]{{3,8,2},{2,7},{9,0,1,6}};

数组赋值(测试)

        int[] x,y[];        x[0] = y;  //no        y[0] = x; //yes        y[0][0] = x;//no        x[0][0] = y;//no        y[0][0] = x[0];//yes        x = y; //no

数组排序:
插入排序:直接插入排序、折半插入排序、Shell排序

交换排序:冒泡排序、快速排序(或分区交换排序)

选择排序:简单选择排序、堆排序

归并排序

基数排序

java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。Arrays拥有一组static方法。
equals():比较两个array是否相等。array拥有相同元素个数,且所有对应元素两两相等。
fill():将值填入array中。
sort():用来对array进行排序。
binarySearch():在排好序的array中寻找元素。
System.arraycopy():array的复制。

代码:

package com.v512.main3;import java.util.Arrays;public class Sort {                                     public static void main(String[] args) {        int [] number = {5,900,1,5,77,30,64,700};        int [] number2 = {50,9000,10,50,770,300,640,7000};        //判断两个数组是否相等        System.out.println(Arrays.equals(number, number2));        /*        src:源数组;    srcPos:源数组要复制的起始位置;        dest:目的数组;  destPos:目的数组放置的起始位置;    length:复制的长度。*/        System.arraycopy(number, 0, number2, 0, 2);        for(int i = 0; i < number2.length; i++)            System.out.print(number2[i]);        System.out.println();        //数组排序        Arrays.sort(number);        for(int i = 0; i < number.length; i++)            System.out.print(number[i]);        System.out.println();        //查询一个值在数组中的位置        System.out.println(Arrays.binarySearch(number, 64));        //填充数组/*      Assigns the specified int value to each element of the specified array of ints.        Parameters:        a the array to be filled        val the value to be stored in all elements of the array*/        Arrays.fill(number, 0);        for(int i = 0; i < number.length; i++)            System.out.print(number[i]);    }}

内存结构图:

二维数组结构

数组内存结构

二维数组内存结构

0 0
原创粉丝点击