黑马程序员-java-数组

来源:互联网 发布:linux 打印内核 编辑:程序博客网 时间:2024/04/30 21:27
 <1.数组基本概念之前在讲解数据类型的时候,java的数据类型分为基本数据类型和引用数据类型数组便是引用数据类型 数组是一组相关的变量集合 在java中可以使用如下的定义格式   数据类型 数组名[]=new 数据类型[长度]   数据类型 [] 数组名=new 数据类型[长度] .通过 数组名称[下标] 为方便起见用.length来区的数组的长度 package org.demo.java;public class text {public static void main(String[]args){int temp[]=new int [10];for(int i=0 ;i<temp.length ;i++ ){System.out.println("temp["+i+"]="+temp[i]);}}} 以上所进行的数组操作中,因为使用到了关键字“new”,所以在数据使用的时候 就已经为其开辟了内存空间 数据的使用分为两类 1.数组的声明一般为栈内存中声明 2.对数组开辟空间,使用关键字new进行空间开辟                 栈内存           堆内存 是对内存    ->  temp             0 的空间地址            new->      0                               0    1.声明一个数组:数据类型 数组的名称[]=null;     因为数组是引用数据类型,引用数据类型一般都为空  2.开辟数组:数组名称= new 数据类型[长度] 使用关键字new完成  例子:  package org.demo.java;public class text {public static void main(String[]args){int x[]= null ;//声明数组x=new int [3];for(int i=0;i<x.length ;i++ ){x[i]=2*i+1;}for(int j :x ){System.out.print(j);}}}  栈内存         堆内存     x    ->       1                   2                   3                   5    操作的是数组名称,实际上是操作的是堆内存的内容    所以这个就叫引用数据类型    假象把栈内存的名称看成人的命字,但是对中存储的是    是人    所以栈中存储的是标记  并且可以为对内存空间设置多个栈的引用    int x[]= null ;//声明数组x=new int [3];栈内存         堆内存     x    ->       1     y    ->       2                   3                   5   y[3]=0;   System.out.println(x[3]);   0因为x y引用的是同一个内存空间,即叫引用传递<2数组属于引用数据类型  开辟内存空间,  int score []= null;    package org.demo.java;public class text {public static void main(String[]args){int x[]= null ;//声明数组for(int j :x ){System.out.print(j);}}}Exception in thread "main" java.lang.NullPointerExceptionat org.demo.java.text.main(text.java:5)    开辟栈内存空间  score =new int [3];  数组只有开辟了对内存空间之后才可以实用  之前的代码数组的操作属于动态初始化,因为在开辟数组的时候  并不知道数组中具体的内容是多少,而且是使用了默认值表示  所以,此时可以按照如下的格式进行初始化操作    数据类型 数组名[] {若干取值}  这为静态初始化    数据类型 数组名[]=null;       这为动态初始化  数组名 = new 数据类型 [行的个数]  数据类型 数组名[]=new 数据类型[行的个数] java 新特性 foreach  package org.demo.java;public class text {public static void main(String[]args){int x[][]=null ;//声明数组x=new int [3][3];for(int i=0 ;i<x.length;i++ ){for(int j=0 ;j<x[i].length ;j++ ){x[i][j]=j;}}for(int j[] :x ){for(int k :j ){System.out.println(k);}}}}java 可变参数的使用package org.demo.java;public class text {public static void main(String[]args){int temp[]={2,4,6,8};fun();fun(1);fun(1,2,3,4,5,6,7,8);fun(temp);}public static void fun(int ... arg){for(int x :arg ){System.out.print(x +".");}System.out.println();}}1.1.2.3.4.5.6.7.8.2.4.6.8.多维数组 Arraypackage org.demo.java;import java.util.*;public class text {public static void main(String[]args){int i1[]={1,2,3,4,5,6};int i2[]={6,5,4,3,2,1};Arrays.sort(i2);System.out.println(Arrays.equals(i1,i2));Arrays.fill(i1,3);System.out.println(Arrays.toString(i1));}}true[3, 3, 3, 3, 3, 3][1, 2, 3, 4, 5, 6]


0 0
原创粉丝点击