标签: java 数组
声明数组语法:
声明并开辟数组:
数据类型 数组名称[] = new 数据类型[长度];
数据类型 []数组名称 = new 数据类型[长度];
//分步完成
//声明数组
数据类型 数组名称 [] = null;
//开辟数组
数组名称 = new 数据类型[长度];
数组的数据类型
数组是引用类型。
动态初始化数组
先开辟数组空间,在赋值。
int data[] = new int[3];
data[0] = 1;
data[1] = 2;
data[2] = 3;
int temp [] = data;
temp[0] = 99;
System.out.println("data[0] =" + data[0]);
结果是
data[0] = 99
。temp
和data
使用的是同一块内存空间。
静态初识化数组
数组的定义的同时就设置好了相应的值。
//格式一
数据类型 数组名称 [] = {值,值,值,...};
//格式二
数据类型 数组名称 [] =new 数据类型{值,值,值,...};
二维数组
二维数组和一位数组一样,也是引用数据类型。也有动态初始化和静态初始化两种初始化方式。
在进行数组的引用传递的过程之中,方法对数组的修改一定会影响到原始数据。
有关数组的算法
数组排序
//冒泡排序
for(int x = 0; x < arrayName.length; x++)
{
for(int y = 0; y < arrayName.length - 1; y++)
{
int t = arrayName[y];
arrayName[y] = arrayName[y + 1];
arrayName[y + 1] = t;
}
}
数组倒置
一维数组
数组倒置,将数组从0至尾倒置成从尾至0.
即:0,1,2,3,
变成:3,2,1,0
public void reverse(int arr[])
{
int len = arr.length / 2;
int head = 0;
int tail = arr.length - 1;
for(int x = 0; x < len; x++)
{
int temp = arr[head];
arr[head] = arr[tail];
arr[tail] = temp;
head++;
tail--;
}
}
二维数组
二维数组的转置。(行列相同)
public void reverse(int arr[][]){
for(int x= 0; x < arr.length; x++){
for(int y = x; y <arr[x].length; y++){
if(x != y){
int temp =arr[x][y];
arr[x][y] = arr[y][x];
arr[y][x] = temp;
}
}
}
}
数组操作方法
数组拷贝
将一个数组的部分内容拷贝到另外一个数组之中。
语法
System.arraycopy(arrA,indexA,arrB,indexB,num)
//arrA,arrB 数组A,数组B,将数组A的内容拷到数组B中
//indexA,数组A开始拷贝的索引;
//indexB,数组B开始接收拷贝的索引。
//num 要拷贝的个数。
数组排序
语法
Array.sort(arrayName);
对象数组
语法
class Book{
//略
}
Book book []= new Book [3] ;
//对象数组的 每个数据都需要分别实例化
book[0] = new Book("title","num");
book[1] = new Book("title1","num2");
book[2] = new Book("title2","num3");
对象数组实际是将多个对象交给数组统一管理。
网友评论