Java(3)

数组的基本概念:
数组(引用数据类型):定义一组相关变量的集合;
定义模式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;
//......
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值