数组

1.数组
数组是用来保存一组相同类型数据的数据结构
数组属于引用类型
数组中的元素可以是基本数据类型也可以是引用数据类型。
注意:

数组中存放的数据一定是相同的类型。

2.一维数组的声明和创建
语法:
数据类型[]数组名称  或者  数据类型 数组名称[];
例如:
int[]num;
int num[];
注意:
在声明数组时,不能指明数组的大小。因为在声明数组阶段,数组还并未真正的存在。
数组的创建:
在Java中使用new关键字创建数组,语法:
数组名称=new 数据类型[指定数组存放数据的个数];

语法2:
数据类型[]数组名称=new 数据类型[指定数组存放数据的个数];

注意:一旦创建数组,就无法更改数组的大小。

示例:

/**
数组的声明和创建
*/
public class Test1{
public static void main(String[]args){
//先声明后创建
int num[];
int[]num1;
num=new int[5];
num1=new int[10];
//边声明边创建
int[]num2=new int[5];
//静态赋值
int[]num3={1,2,3};
//动态赋值
num[0]=10;
num[1]=20;
num[2]=30;
num[3]=40;
num[4]=50;
//根据下标取值
System.out.println(num3[0]+" "+num3[1]+" "+num3[2]);
System.out.println(num[0]+" "+num[1]+" "+num[2]+" "+num[3]+" "+num[4]);
System.out.println(num.length);
for(int i=0;i<num.length;i++){
System.out.println(num[i]);
}
String[]str={"abc","zhangsan"};
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
}
}


3.数组的使用
1.静态赋值:在定义数组的同时就为数组元素分配空间并赋值
语法:
数据类型[]数组名称={数据1,数据2,...};
例如:   int[]num={1,2,3};

语法:
数据类型[]数组名称=new 数据类型[]{数据1,数据2,...};

2.动态赋值:就是先创建数组,然后给据数组的下标进行赋值。
数组的下标是从0开始的。
通过length属性可以获取数组的长度,语法:
数组名称.length

数组下标取值的范围是数组长度-1;

4.增强的for循环
语法:
for(数据类型 变量名称:数组名称或集合名称){

}
缺陷:
遍历数组或集合时无法访问索引(下标)值
用途:
只适合遍历显示数组或集合中元素的内容。

示例:

/**
增强的for循环
*/
public class Test2{
public static void main(String[]args){
int []num={1,2,3,4,5,6};
for(int a:num){
System.out.println(a);
}
}
}


5.命令行参数
Java程序的入口方法main 方法,带有String[] args参数。这个参数表示main方 法接收了一个字符串数组,也就是命令行参数。
使用:
在使用java命令时,在类名的后面进行参数传递,多个参数用空格隔开。

示例:

/**
命令行参数  示例
*/
public class Test3{
public static void main(String[]args){
for(int i=0;i<args.length;i++){
System.out.println(args[i]);
}
}
}


6.最大值和最小值
原理:可以利用数组中的某个元素和数组中其他元素进行循环对比。

7.Arrays数组排序
数组中元素可以直接利用java.util.Arrays类,java.util包中提供了许多存储 数据的结构和方法。Arrays类提供了许多方法操作数组,如:排序,查找等方法。
Arrays类中的sort()方法就是用来对数组进行升序排列的方法。

示例:

/**
Arrays类 示例
*/
import java.util.Arrays;
public class Test7{
public static void main(String[]args){
int []num={30,2,10,8,69,11,1};
//排序
Arrays.sort(num);
//for(int i=0;i<num.length;i++){
// System.out.println(num[i]);
//}
for(int i=num.length-1;i>=0;i--){
System.out.println(num[i]);
}
}
}


8.数组的复制
通过System类中的arraycopy()方法实现数组的复制。
arraycopy(arg1,arg2,arg3,arg4,arg5)方法中需要传递五个参数
arg1表示:源数组
arg2表示:从源数组的哪个位置开始复制
arg3表示:目标数组
arg4表示:把复制的元素从目标数组哪个位置开始存放
arg5表示:要复制的数组元素的数量

示例:

/**
编写一个程序,能够实现对数组的复制。
int[]num={1,2,3,4,5};
*/
public class Test8{
public static void main(String[]args){
int[]num={1,2,3,4,5};
int[]num1=new int[num.length];
//for(int i=0;i<num.length;i++){
// num1[i]=num[i];
//}
System.arraycopy(num,0,num1,0,num.length);
for(int a:num1){
System.out.println(a);
}
}
}


综合例题

例题:

/**
用键盘输入10个学员的成绩并计算总成绩和平均成绩

对输入的数进行升序排列
*/
import java.util.Scanner;
public class Test5{
public static void main(String[]args){
Scanner s=new Scanner(System.in);
double []score=new double[10];
double sum=0;
for(int i=0;i<score.length;i++){
System.out.println("请输入第"+(i+1)+"个成绩:");
score[i]=s.nextDouble();
sum+=score[i];
}

double max=score[0];
double min=score[0];
for(int i=0;i<score.length;i++){
if(max<score[i]){
max=score[i];
}
if(min>score[i]){
min=score[i];
}
}

System.out.println("总成绩:"+sum);
System.out.println("平均成绩:"+(sum/score.length));

System.out.println("最大值:"+max);
System.out.println("最小值:"+min);

}
}
















發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章