数组的基本概念:
数组(引用数据类型):定义一组相关变量的集合;
定义模式1:数据类型 数组名称[]=new 数据类型[长度];
定义模式2:数据类型 数组名称[]={...........};
在java中,不可以通过类似于 int a[20]这种方法来定义数组:
初始化中,其默认值是对应数据类型的默认值。(动态初始化,静态初始化)
静态初始化两种方法:
1.int data []={};
2.int data []=new int []{};
列如:
public class project_1{
public static void main(String args[]){
int a[]=new int []{1,2,3,4,5};//匿名数组对象
int b[]=a;
for(int j=0;j<a.length;j++)
System.out.println(b[j]);
}
}
数组的长度为:数组名称.length;
注意:凡是与(new)引用数据类型有关的变量声明,都与堆中的内存分配有关。
数组是可以赋值的(即引用传递):
public class project_1{
public static void main(String args[]){
int a[]=new int[5];
for(int i=0;i<5;i++)
a[i]=i;
int b[]=a;
for(int j=0;j<a.length;j++)
System.out.println(b[j]);
}
}
二维数组:
动态初始化:数据类型 名称[][]=new 数据类型 [长度][长度];
静态初始化:数据类型 名称[][]=new 数据类型 [][]{{},{},.....};
列如:
public class project_1{
public static void main(String args[]){
int a[][]=new int [][]{{1,2},{3,4}};
int b[][]=a;
for(int j=0;j<b.length;j++){
for(int i=0;i<b[j].length;i++)
System.out.print(b[j][i]);
System.out.println();
}
}
}
数组与方法参数的调用:
在方法中传递参数,会改变原数组的内存值(引用传递)。即在方法中改变数组,则数组的改变一定会被保留下来。
范例:(简单的冒泡排序)
public class project_1{
public static void main(String args[]){
int a[]=new int []{2,3,4,7,8,1};
Sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
public static void Sort(int temp[]){
for(int i=0;i<temp.length;i++){
int x=temp[i];
for(int j=i;j<temp.length;j++){
if(temp[j]>x){
int y=temp[j];
temp[j]=x;
x=y;
}
}
temp[i]=x;
}
}
}
范例:实现数组的转置、
public class project_1{
public static void main(String args[]){
int a[]=new int []{1,2,3,4,5,6,7,8,9};
Sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
public static void Sort(int temp[]){
int x = temp.length;
for(int i=0;i<(x/2);i++){
int y=temp[x-i-1];
temp[x-i-1]=temp[i];
temp [i]=y;
}
}
}
Java中可以返回一个数组,而且返回的数组是可以直接操作的。(数组名称是最无用的东西)
数组的两个操作方法:(java中数组是有类库支持的)
1.数组拷贝:
System。arraycppy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,长度);
2.数组排序:
java.util.Arrays.sort();//数组排序
范例:
import java.util.Arrays;
public class project_1{
public static void main(String args[]){
int a[]=new int []{9,8,7,6,5,4,3,2,1};
Arrays.sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
}
对象数组:引用数据(类也可以)类型定义的数组
动态初始化:引用数据类型 名称[]=new 引用数据类型[长度];
静态初始化:引用数据类型 名称[]=new 引用数据类型{...........};
注意:也可以用来定义类数组(建立对象数组),对象数组中的对象都要分别进行初始化。
范例:
public class project_1{
public static void main(String args[]){
Book x[]=new Book[3];
for(int i=1;i<3;i++)
System.out.println(x[i]);
}
}
class Book{
int name;
int price;
//......
}
数组(引用数据类型):定义一组相关变量的集合;
定义模式1:数据类型 数组名称[]=new 数据类型[长度];
定义模式2:数据类型 数组名称[]={...........};
在java中,不可以通过类似于 int a[20]这种方法来定义数组:
初始化中,其默认值是对应数据类型的默认值。(动态初始化,静态初始化)
静态初始化两种方法:
1.int data []={};
2.int data []=new int []{};
列如:
public class project_1{
public static void main(String args[]){
int a[]=new int []{1,2,3,4,5};//匿名数组对象
int b[]=a;
for(int j=0;j<a.length;j++)
System.out.println(b[j]);
}
}
数组的长度为:数组名称.length;
注意:凡是与(new)引用数据类型有关的变量声明,都与堆中的内存分配有关。
数组是可以赋值的(即引用传递):
public class project_1{
public static void main(String args[]){
int a[]=new int[5];
for(int i=0;i<5;i++)
a[i]=i;
int b[]=a;
for(int j=0;j<a.length;j++)
System.out.println(b[j]);
}
}
二维数组:
动态初始化:数据类型 名称[][]=new 数据类型 [长度][长度];
静态初始化:数据类型 名称[][]=new 数据类型 [][]{{},{},.....};
列如:
public class project_1{
public static void main(String args[]){
int a[][]=new int [][]{{1,2},{3,4}};
int b[][]=a;
for(int j=0;j<b.length;j++){
for(int i=0;i<b[j].length;i++)
System.out.print(b[j][i]);
System.out.println();
}
}
}
数组与方法参数的调用:
在方法中传递参数,会改变原数组的内存值(引用传递)。即在方法中改变数组,则数组的改变一定会被保留下来。
范例:(简单的冒泡排序)
public class project_1{
public static void main(String args[]){
int a[]=new int []{2,3,4,7,8,1};
Sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
public static void Sort(int temp[]){
for(int i=0;i<temp.length;i++){
int x=temp[i];
for(int j=i;j<temp.length;j++){
if(temp[j]>x){
int y=temp[j];
temp[j]=x;
x=y;
}
}
temp[i]=x;
}
}
}
范例:实现数组的转置、
public class project_1{
public static void main(String args[]){
int a[]=new int []{1,2,3,4,5,6,7,8,9};
Sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
public static void Sort(int temp[]){
int x = temp.length;
for(int i=0;i<(x/2);i++){
int y=temp[x-i-1];
temp[x-i-1]=temp[i];
temp [i]=y;
}
}
}
Java中可以返回一个数组,而且返回的数组是可以直接操作的。(数组名称是最无用的东西)
数组的两个操作方法:(java中数组是有类库支持的)
1.数组拷贝:
System。arraycppy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,长度);
2.数组排序:
java.util.Arrays.sort();//数组排序
范例:
import java.util.Arrays;
public class project_1{
public static void main(String args[]){
int a[]=new int []{9,8,7,6,5,4,3,2,1};
Arrays.sort(a);
for(int j=0;j<a.length;j++){
System.out.println(a[j]);
}
}
}
对象数组:引用数据(类也可以)类型定义的数组
动态初始化:引用数据类型 名称[]=new 引用数据类型[长度];
静态初始化:引用数据类型 名称[]=new 引用数据类型{...........};
注意:也可以用来定义类数组(建立对象数组),对象数组中的对象都要分别进行初始化。
范例:
public class project_1{
public static void main(String args[]){
Book x[]=new Book[3];
for(int i=1;i<3;i++)
System.out.println(x[i]);
}
}
class Book{
int name;
int price;
//......
}