Java中的数组

数组简介:

数组(Array)是Java 语言中内置的一种基本数据存储结构,通俗的理解,就是一组数的集合,目的是用来一次存储多个数据。数组是程序中实现很多算法的基础,可以在一定程度上简化代码的书写。

 

备注:

1.         数组的好处:数组里的每个元素都有编号,编号从0开始,并且依次递增,方便操作这些元素;

2.         使用Java数组:必须先声明数组,再给该数组分配内存;

3.         数组对应在内存中一段连续空间。

4.         数组元素必须是相同数据类型,也可以是引用数据类型,但是同一个数组中的元素必须是同一类数据类型。

一维数组的声明与初始化:

一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素;

一维数组的声明方式:

             type varName[]; 或 type[] varName;(推荐)

Eg:int age[]; int []age;

数组的长度一旦确定,就不能改变,也就数组是定长的;

我的总结:java语言声明数组的时候不能指定其长度(元素的个数)

Eg:int a[5]; //非法

 

初始化:

Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;

数组初始化的两种方式:

静态初始化:初始化时由我们自己指定每个数组元素的初始值,由系统决定需要的数组长度;

格式:数组名 = new 数组类型[]{元素1,元素2,元素3...元素n};

简化语法:数组名 = {元素1,元素2,元素3...元素n};

 

动态初始化:初始化时由我们指定数组的长度,由系统为数组元素分配初始值;

格式:数组名 = new 数组类型[数组长度];

 

我的总结:

不能静态和动态初始化同时使用:

也就是说不能同时指定数组的长度和元素;

 

package reviewDemo;
/**
 * 声明数组及初始化
 */
public class Demo3 {
    public static void main(String[] args) {
        int []age = new int[10];
        //动态初始化
        for (int i = 0; i < age.length; i++) {
            age[i] = i;
            System.out.print(age[i]+"     ");
        }
    }
}

输出:0     1     2     3     4     5     6     7     8     9     

数组的使用:

Java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。

常见操作:

给数组元素赋值

数组名[索引] = 数组类型的值 ;

访问数组元素

数组类型 变量 = 数组名[索引];

得到数组的长度

int len  = 数组名.length;     //length是数组的属性

遍历数组(备注:length 属性和循环语句)

数组元素的索引范围(0,长度—1)

 

Eg:判断数组是否重复

package reviewDemo;
/**
 * 判断数组是否重复
 */
public class Demo3 {
    public static void main(String[] args) {
        int []age = {1,2,3,4,5,6,5};
        for (int i = 0; i < age.length-1; i++) {//双层循环,定住一个,再考虑下一个!
            for (int j = i+1; j < age.length; j++) {
                if(age[i] == age[j]){
                    System.out.println("有重复的!"+i+"  "+j);
                    break;
                }
            }
        }
    }
}

求最大值

package reviewDemo;

public class Demo4 {
    public static void main(String[] args) {
        int age[] = new int[] { 12, 26, 3, 60, 55, 6, 48, 4, 98 };
        int max = age[0];
        for (int i = 0; i < age.length; i++) {
            if (max < age[i]) {
                max = age[i];
            }
        }
        System.out.println(max);

    }
}

经典用法:冒泡法排序

package reviewDemo;

import java.util.Arrays;

//冒泡排序
public class Demo6 {
    public static void main(String[] args) {
        int []age = {1,2,36,363,56,95,12,32,1232,3263};
        
        for (int i = 0; i < age.length; i++) {
            for (int j = i+1; j <= age.length-1; j++) {
                if(age[i] > age[j]){
                    int temp = age[i];
                    age[i] = age[j];
                    age[j] = temp;
                }
            }
        }
        System.out.println(Arrays.toString(age));
    }
}    
//输出为:[1, 2, 12, 32, 36, 56, 95, 363, 1232, 3263]

 

posted @ 2018-06-25 15:44  天剑含光  阅读(177)  评论(0编辑  收藏  举报