赞
踩
跟C语言一样,数组在java中也是中重要的数据结构,在Java 语言中提供的数组跟C语言中的相同,但又有点小小的区别,我们小面就会讲到。你可以声明一个数组变量,如 num[100] 来代替直接声明 100 个独立变量 num有的子怒骂num0,num1,....,num99。
本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。
一、数组的声明和两种定义方式
1, 声明数组变量
首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:
dataType[] arrayRefVar; // 首选的方法
或
datatype arryRefVar [ ] ;
dataType arrayRefVar[]; // 效果相同,但不是首选方法
1, 数组的定义:
1, 静态方式
dataType[] arrayRefVar = { };
例如:
int [ ] score = { 90,78,89,94,65};
String [ ] = {"jftr","jiuk","java"};
2, 动态方式
Java语言使用new操作符来创建数组,语法如下:
dataType[] arrayRefVar = new dataType [size];
例如:
int [ ] score = new int [5];
score[0] = 90;
score[1] = 78;
score[2] = 89;
score[3] = 95;
score[4] = 65;
上面的语法语句有两个功能:
一、使用 dataType[arraySize] 创建了一个数组。
二、把新创建的数组的引用赋值给变量 arrayRefVar。
需要注意的是,数组一旦被定义就无法修改数组的大小
3、数组的使用:
接下来我们来个数组试试Java中的数组。
public class TestArray {
public static void main(String[] args) {
// 数组大小
int size = 10;
// 定义数组
double[] myArry = new double[size];
myArry[0] = 5.6;
myArry[1] = 4.5;
myArry[2] = 3.3;
myArry[3] = 13.2;
myArry[4] = 4.0;
myArry[5] = 34.33;
myList[6] = 34.0;
myList[7] = 45.45;
myList[8] = 99.993;
myList[9] = 11123;
// 计算所有元素的总和
double total = 0;
for (int i = 0; i < size; i++) {
total += myArry[i];
}
System.out.println("总和为: " + total);
}
}
下面的图片描绘了数组 myArry。这里 myArry数组里有 10 个 double 元素,它的下标从 0 到 9。
二、遍历数组的三种方式
假如有数组int [ ]count = {1,2,3,4,5,6,7,8,9,1};
则数组的输出方式有如下三种:
1, 数组输出方式1
传统的for循环方式
for (int i = 0; i < 10; i++){
System.out.print(count[i]+" ");
}
System.out.println();
2, 数组输出方式2
for each 循环
for (int temp: count){
System.out.print(temp + " ");
}
System.out.println();
3, 数组输出方式3
利用Array类中的toString方法调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
System.out.println(Arrays.toString(count));
}
说明:System.out.println(count);这样是不行的,这样打印是的是数组的首地址。
前面我们有C语言写了一个数字游戏,今天带领大家有java来感受一下。
首先来说一下这个游戏要求:
1, 随机产生4个不相同的数字
2, 玩家开始输入四个数字
3, 如果位置正确且数字正确用A输出
4, 如果数字正确位置不正确用B输出B
如:随机产生的四个数字为: 1 2 3 4
玩家输入的数字为: 1 2 4 6
则提示:2A1B
java代码如下:
class GuessNumber{
public static void main(String[] args){
//保存原始数字
int[] org = new int[4];
//保存用户猜测的数字
int[] guess = new int[4];
//产生4个随机数
Random random = new Random();
for (int i = 0; i < 4; i++){
//产生一个随机数
int temp = random.nextInt(10);
//判断是否存在
boolean result = contains(org, temp);
if (result){
//确保i对应的位置能够得到一个不重复的数字
i--;
}else{
org[i] = temp;
}
}
//排序
Arrays.sort(org);
System.out.println(Arrays.toString(org));
//定义一个扫描仪对象Scanner
Scanner scanner = new Scanner(System.in);
//开始游戏
while(true){
int countA = 0;
int countB = 0;
System.out.print("请输入猜测的数字:");
for (int i = 0; i < 4;i++){
guess[i] = scanner.nextInt();
}
//判断用户输入
//1.判断是否存在
for (int i = 0; i < 4; i++) {
boolean result =contains(guess, org[i]);
if(result == true){
//数字存在
//判断位置是否相同
int index = indexOf(guess, org[i]);
if (index == i){
//数字和位置都相同
countA++;
} else{
countB++;
}
}
}
if (countA == 4){
System.out.println("恭喜全对!");
break;
}else{
System.out.println(countA+"A"+countB+"B");
}
}
}
/**
* 在一个数组里面查找某个对象的索引值
* @param val 数组
* @param obj 查找的对象
* @return 索引值
*/
public static int indexOf(int[] val, int obj){
for (int i = 0; i < val.length; i++){
if (val[i] == obj){
return i;
}
}
return -1;
}
//自己写一个方法实现 判断某个数组里面是否包含某个值
public static boolean contains(int[] val, int obj){
for (int i = 0; i < val.length; i++){
if (val[i] == obj){
//重复了
return true;
}
}
return false;
}
}
运行结果如下:
寄语读者
从C到java是有一个过度阶段的,一个面向过程,一个面向对象,是有区别的,现在还没找到学习java的同学,希望你们不要焦急,只要你在一步一个脚印地走,总会找到学习的方法,学好java 的,祝所有读者每天都能快乐地学习!好了,小编今天的分享就到此了,我们明天见!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。