`
612星球
  • 浏览: 9348 次
  • 性别: Icon_minigender_2
文章分类
社区版块
存档分类
最新评论

五.数组

 
阅读更多
1.数组
什么是数组?
容器,用来装载同一数据类型的容器。
java中数组也属于引用类型。使用的传递方式也是引用传递。
数组名中存储的是数据在内存中的首地址。

一维数组
格式一:
数据类型 数组名[] = new 数据类型[数组长度];(常用)
或:数据类型 [] 数组名 = new 数据类型[数组长度];
格式二:
数据类型 数组名[] = {数值,...};(使用的不多)
格式三:
数据类型 数组名[] = new 数据类型[]{数值,...};(很少使用)
格式四:(很少使用)
数据类型 数组名[];
数组名 = new 数据类型[]{数值,...};
数组名 = new 数据类型[数组长度];

数组名 = {数值,...};错误的写法

要获取数组的长度:就使用数组唯一的属性length
用法:数组名.length;该属性会返回数组的长度

要给数组的每一个元素赋值,那么通过什么给数组元素赋值呢?
通过下标,就可以给数组的每一个元素赋值。
用法:数组名[下标];
数组的下标是从0开始,长度是从1开始。
IndexOutOfBoundsException  :数组下标越界的异常

二维数组
格式一:
数据类型 数组名[][] = new 数据类型[行数][列数];(常用)
格式二:
数据类型 数组名[][] = {{数值,...},...};(使用的不多)
格式三:
数据类型 数组名[][] = new 数据类型[][]{{数值,...},...};(很少使用)
格式四:(很少使用)
数据类型 数组名[][];
数组名 = new 数据类型[][]{{数值,...},...};
数组名 = new 数据类型[行数][列数];

要获取数组的总行数:就使用数组唯一的属性length
用法:数组名.length;返回该数组的总行数
要获取数组的总列数:就使用数组唯一的属性length
用法:数组名[行下标].length;返回该数组每一行的总列数

要给数组的每一个元素赋值,那么通过什么给数组元素赋值呢?
通过下标,就可以给数组的每一个元素赋值。
用法:数组名[行下标][列下标];
数组的下标是从0开始,长度是从1开始。

例一:
Test.java

package cn.netjava.lesson8;

import java.util.Random;

/**
* 数组的测试类
* @author Administrator
*
*/
public class Test {

/**
* @param args
*/
public static void main(String[] args) {
//实例化对象
Test t = new Test();
int [] array = t.createArray(10);//创建数组对象
t.printArray(array);//打印数组的内容
System.out.println("====================================");
t.maopao(array);//开始排序
t.printArray(array);//打印数组
}

/**
* 创建数组的方法
*/
public int [] createArray(int length){
int [] array = new int[length];//创建了一个整数类型的array数组
//创建一个随机数对象
Random rand = new Random();
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
int value = rand.nextInt(100);//随机生成0-99的数据,存入到value中
array[i] = value;//将value中的值存储到array[i]中
}
//返回值数组对象
return array;
}

/**
* 冒泡排序
*/
public void maopao(int [] array){
//循环数组
for(int i=0;i<array.length;i++){
for(int j=i+1;j<array.length;j++){
if(array[i] > array[j]){
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
}

/**
* 打印数组的方法
*/
public void printArray(int [] array){
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
System.out.print(array[i]+"\t");
}
System.out.println();
}

}

例二:
Test2.java

package cn.netjava.lesson8;

import java.util.Random;

/**
* 数组的测试类
* @author Administrator
*
*/
public class Test2 {

/**
* @param args
*/
public static void main(String[] args) {
//实例化对象
Test2 t = new Test2();
int [][] array = t.createArray(10,10);//创建数组对象
t.printArray(array);//打印数组的内容
}

/**
* 创建数组的方法
*/
public int [][] createArray(int row,int column){
int [][] array = new int[row][column];//创建了一个整数类型的array数组
//创建一个随机数对象
Random rand = new Random();
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int value = rand.nextInt(100);//随机生成0-99的数据,存入到value中
array[i][j] = value;//将value中的值存储到array[i]中
}
}
//返回值数组对象
return array;
}

/**
* 打印数组的方法
*/
public void printArray(int [][] array){
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+"\t");
}
System.out.println();
}
}

}


练习:

1.如果我想生成的随机数是200-500之间的呢?
Shuzu.java

package cn.netjava.lesson8;

import java.util.Random;

/**
* 数组的测试类
* @author Administrator
*
*/
public class Zuida {

/**
* @param args
*/
public static void main(String[] args) {
//实例化对象
Zuida t = new Zuida();
int [][] array = t.createArray(10,10);//创建数组对象
t.printArray(array);//打印数组的内容
}

/**
* 创建数组的方法
*/
public int [][] createArray(int row,int column){
int [][] array = new int[row][column];//创建了一个整数类型的array数组
//创建一个随机数对象
Random rand = new Random();
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int value = rand.nextInt(100);//随机生成0-99的数据,存入到value中
array[i][j] = value;//将value中的值存储到array[i]中
}
}
//返回值数组对象
return array;
}

/**
* 打印数组的方法
*/
public void printArray(int [][] array){
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+"\t");
}
System.out.println();
}


int max = array[0][0];
//循环数组
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
    if(array[i][j]>max){
    max = array[i][j];
    }
}
}
System.out.println("这个二维数组中的最大值:"+max);
}
}


2.找出二维数组中最大的一个元素值,并且输出。
Zuida.java

package cn.netjava.lesson8;

import java.util.Random;

/**
* 数组的测试类
* @author Administrator
*
*/
public class Zuida {

/**
* @param args
*/
public static void main(String[] args) {
//实例化对象
Zuida t = new Zuida();
int [][] array = t.createArray(10,10);//创建数组对象
t.printArray(array);//打印数组的内容
}

/**
* 创建数组的方法
*/
public int [][] createArray(int row,int column){
int [][] array = new int[row][column];//创建了一个整数类型的array数组
//创建一个随机数对象
Random rand = new Random();
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
int value = rand.nextInt(100);//随机生成0-99的数据,存入到value中
array[i][j] = value;//将value中的值存储到array[i]中
}
}
//返回值数组对象
return array;
}

/**
* 打印数组的方法
*/
public void printArray(int [][] array){
//要循环给数组的每一个元素赋值
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
System.out.print(array[i][j]+"\t");
}
System.out.println();
}


int max = array[0][0];
//循环数组
for(int i=0;i<array.length;i++){
for(int j=0;j<array[i].length;j++){
    if(array[i][j]>max){
    max = array[i][j];
    }
}
}
System.out.println("这个二维数组中的最大值:"+max);
}
}









分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics