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);
}
}
分享到:
相关推荐
五、 Mysql 105 1. 后续教学日程及mysql安装 105 2. PHP连接mysql 106 3. 资源的概念及发送sql查询 109 4. php修改表数据 112 5. php查询表数据 113 6. 查询与修改综合运用 118 7. mysql调试技巧 120 六、 贴吧项目 ...
ActionScript 3 Cookbook 中文版 1 第一章. ActionScript 语言基础 3 1.0. ActionScript 3.0 Cookbook 概述 3 1.1. 新建一个 ActionScript 工程 3 1.2. 自定义应用程序属性 4 ...5.16.读取联合数组 86
五.指针和引用 12 1.概念 12 2.声明 12 3.指针与数组 13 例子(提取字符串中的单词) 13 4.引用的使用 14 六.函数 14 1.概念 14 2.声明 14 3.main函数 14 例子(argc和argv的应用) 15 4.递归函数 15 例子(求n!) ...
第五章 数组.docx
数据结构练习(含答案):第五章数组和广义表.doc
本人上课时老师的课件,讲的还不错,所以建议大家看看
高级语言程序设计:第五章 数组.ppt
第五单元包括十个单元,分别是一维数组的定义、一维数组的输入与输出、一维数组的插入删除、一维数组的查找统计、一维数组的元素排序、一维数组的应用举例、二维数组的定义与操作、二维数组的应用举例、数字方阵、...
第十五章 数组进阶 15.1 数据模型 数据是描述事务的符号记录,模型是现实世界的抽象。现实世界的事务及关联关系可以抽象成一个具体的模型,模型通过某种数据结构映射到计算机世界中,进而计算机通过软件处理数据来...
第五章 数组和广义表.ppt
C语言程序设计:第五章 数组.ppt
数据结构教学课件:第五讲数组.ppt
C语言课件(谭浩强):第五章 数组.ppt