Java——数组

【数组】

注:C/C++中数组可以存储在栈中,但是Java中不可以(因为Java中是引用)。

【一维数组】

声明: type var[]; 或者 type[] var;

Java语言生成数组时不能指定其长度(数组中元素的个数),例如int a[4]是非法的

(--因为Java中数据分配在堆中,是动态分配的;C语言可以)。

数组对象的创建:

数组名 = new 数组元素的类型[数组元素的个数]

【内存分配】

注:这表示在内存中new出5个对象,每个对象的初始化值为0(默认值)。

new int[5]与int[] arr不同:前者合法,后者非法。

【元素为引用数据类型的数组】

注意:元素为引用数据类型的数组中的每一个元素都需要实例化。

注:<1>days数据类型为数组,Date[]作为一个类。

<2>days = new Date[3];表示引用类型的数据,即days(栈中)指向堆中的一个区域Date[3]。

<3>days[i] = new Date(2004,4,i++);表示一个引用,days[1]指向堆中的另外一个区域Date(2004,4,1)。

【数组初始化】

动态初始化:数组定义与数组元素分配空间和赋值的操作分开进行。

(一定要记住数组要先分配好空间再使用,不一定非要赋值)

注:<1>int a[];----数组定义(栈)

<2>a=new int[3];----分配空间(堆)

<3>a[0]=3;----赋值操作(堆)

静态初始化:在定义数组的同时就为数组元素分配空间并赋值。

【数组元素的默认初始化】

数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。

注:<1>a[3]是int类型,int类型默认初始值为0.

<2>days[2]是引用类型,引用类型默认初始值为NULL。

【数组元素的引用】

注:数组的length是一个属性,不是一个方法(因此不要写成a.length())。

【String[] args】

在Java的main函数中输入以下的语句:

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

System.out.println(args[i]);

}

编译运行后无任何显示。

输入命令行参数:java test.java 11 22 33 aa bb cc

输出结果为:11 22 33 aa bb cc

【基础类型的包装类】

一般基础类型数据加载在栈中,如果需要存储在堆中,则需要包装为对象。

例如:byte-->Byte,int-->Integer,char-->Character......

这样就可以实现数据之间的转换,因为基础类型的数据已经转换为Class对象,在API中就有一系列对应的方法。

例如: static double = Double(String s);----传入的参数为String类型,返回的double类型。

时间: 2024-08-26 14:33:05

Java——数组的相关文章

Java 数组学习笔记

数组的简单认识 简单理解java数组,就是可以创建并组装它们,通过使用整型索引值访问它们的元素,并且它们的尺寸不能改变,这里的它们就是数组. 数组的特殊性 在java中有很多方式去持有对象,那么数组的与众不同点在哪里? 数组与其他种类的容器区别有三个方面:效率.类型和保存基本类型的能力. 在java中,数组是一种效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常迅速.但是为之付出的代价就是数组对象的大小被固定,并且在其生命周期中不可改变. 在泛型之前,其他

Java数组与内存控制

一.Java数组初始化 Java数组是静态的,即当数组被初始化之后,该数组的长度是不可变的.Java数组使用之前必须先对数组对象进行初始化,所谓初始化,就是为数组的所有元素分配内存空间,并为每个数组元素指定初始值.(文章来源于李刚老师的<突破java程序员的16课>) 1:基本类型数组的两种初始化方式 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,由系统决定数组长度. 动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值. 不要同时使用静态初始化和动态初始化,也就是

JAVA数组的定义及用法

数组是有序数据的集合,数组中的每一个元素具有同样的数组名和下标来唯一地确定数组中的元素. 1. 一维数组 1.1 一维数组的定义 type arrayName[]; type[] arrayName; 当中类型(type)能够为Java中随意的数据类型,包含简单类型组合类型,数组名arrayName为一个合法的标识符,[]指明该变量是一个数组类型变量. 另外一种形式对C++开发人员可能认为非常奇怪,只是对JAVA或C#这种开发语言来说,另外一种形式可能更直观,由于这里定义的仅仅是个变量而已,系统

java 数组比较,元素的比较,Comparable,Comparator比较的应用实现,排序,查找示例

java 数组比较,元素的比较,自定义Comparator的实现,排序,查找示例 package org.rui.array.compar; import java.util.Arrays; import java.util.Random; import org.rui.generics.anonymity.Generator; /** * 程序设计的基本目标是"将保持不变的事物与会发生改变的事物相分离" * 而这是,不变的是通用的排序算法,变化的是各种对象相互比较的方式, * 因此,

Java 数组工具类排序,最大值最小值等

public class ArrayUtils{ /** * 返回数组最大值 * * @param a * @return */ public static int max(int[] a){ // 返回数组最大值 int x; int aa[]=new int[a.length]; System.arraycopy(a,0,aa,0,a.length); x=aa[0]; for(int i=1;i<aa.length;i++){ if(aa[i]>x){ x=aa[i]; } } retu

java 数组声明

Java 数组声明常用的方式 1.类型  数组名称[] = new 数组类型[个数] 2,类型  数组名称    =  new 数组类型[] {} 3,类型[] 数组名称 = {} //类型 数组名[] = new 数组类型 [个数] int $arr[] = new int [4]; $arr[0] = 1; $arr[1] = 2; $arr[2] = 3; $arr[3] = 4; //类型 数组名称 = new 数组类型[]{} int $arr1[] = new int[]{1,2,3

JAVA数组插入数值

将一个数值插入JAVA数组,并排序. import java.util.Scanner; public class xr{ public static void main(String[] args){ int[] arr={14,24,35,48,69}; Scanner in=new Scanner(System.in); System.out.println("请输入一个要插入的值"); int a=in.nextInt(); arr[arr.length-1]=a; for(i

Java数组的运用

Java数组 应用1: 大乐透彩票模拟器: 规则: 前区01-35中随机生成5个号码 后区01-12中随机生成2个号码 模拟操作,系统自动生成号码组合,并且按从小到大的顺序输出结果 同时要求可以选择生成多少组(默认选项:生成1组,生成5组,生成10组) 上图为方法一,数组的综合应用,赋值,冒泡排序,和通过循环遍历: 方法一: 常规的方法: 第一步:输出彩票前区的号码,用while循环,一个个随机数字输出,把一个数字赋值进数组第一个位置,因为要保证每一个数字的唯一性,所以之后的输出的数字要做出判断

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals

java数组和Array类

java数组英文:Arrays 存储相同数值的集合的数据结构 An array is a data structure that stores a collection of values of the same type. You accesseach individual value through an integer index. For example, if a is an array of integers, thena[i] is the ith integer in the a