码迷,mamicode.com
首页 > 编程语言 > 详细

数组总结

时间:2021-05-03 12:00:23      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:tostring   概述   arrays   改变   arch   返回   堆内存   new   组元   

数组本质上是实例,里面的元素是成员变量,因此按实例成员变量的初始化执行,声明只是将变量名放在栈中,new则是在堆内存中开辟新空间并进行默认初始化。多维数组只是一维数组中的元素成为变量指向另外一个数组。对数组的操作大多数已经在工具类Arrays类中,可以直接使用。

数组概述

数组是相同类型数据的有序集合。

数组声明创建

声明

dataType[] arrayRefVar; //首选
datzType arrayRefVar[];

创建

dataType[] arrayRefVar = new arrayRefVar[arraySize];//分配内存空间

0开始,范围是[0,length-1]

默认初始化0,0.0,null

数组的长度:arrays.length

特点

  • 长度固定,不可改变

  • 相同类型,包括基本类型,引用类型

  • 数组变量属引用类型,可看成是对象,每个元素可相当于对象的成员变量,java对象在堆中,因此数组对象也在堆中

内存分析

int[] num;//在栈中存入num变量
num = new int[10];//在内存堆中开辟空间,将变量指向相应的地址

三种初始化

静态初始化

int[] a = {1,2,3};

动态初始化

int[] a = new int[2];
a[0] = 1;
a[1] = 2;

默认初始化

数组是引用类型,相当于实例对象,其元素相当于成员变量,执行默认初始化。

int[] a = new int[2];//a[0]=0;a[1]=0

数组的使用

  • 普通for循环
  • for-each
  • 作为参数
  • 作为返回值

多维数组

int[][] a1 = { { 1, 2, 3 }, { 4, 5, 6 } };
相当于[1][2]两行三列
a1[0]={ 1, 2, 3 };
a1[1]={ 4, 5, 6 };
a1[0][0]=1

Arrays类

方法

int[] a = {1,2,3,5,8888,555};
int[] b = {1,2,3,5,8888,555};
//打印数组
System.out.println(Arrays.toString(a));
//比较数组元素是否相等
System.out.println(Arrays.equals(a,b));
//数组排序
Arrays.sort(a);
System.out.println(Arrays.toString(a));
//数组赋值
Arrays.fill(a,1);
System.out.println(Arrays.toString(a));
//查找数组元素
int index = Arrays.binarySearch(b,5);
System.out.println(index);

冒泡排序

int[] a = {1,2,3,4,9,13,5,88,55,6};
int tmp = a[0];
int num = 0;
for (int j = 0; j < a.length-1; j++) {
    Boolean flag = true;
    for (int i = 0; i < a.length-1-j; i++) {
        if (a[i]>a[i+1]){
            tmp = a[i];
            a[i] = a[i+1];
            a[i+1] = tmp;
            flag = false;
        }
        num++;
}
    if (flag){
        break;
    }
}

稀疏数组

数组总结

标签:tostring   概述   arrays   改变   arch   返回   堆内存   new   组元   

原文地址:https://www.cnblogs.com/marhuman/p/14723006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!