zoukankan      html  css  js  c++  java
  • 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]
  • 相关阅读:
    Java后端WebSocket的Tomcat实现
    Swift学习资源
    jwplayer 隐藏属性方法记载
    简单的java socket 示例
    SQL SERVER 2008/2012/2012R2/2014 设置开启远程连接(sa配置)
    JS原型继承和类式继承
    理解js中的原型链,prototype与__proto__的关系
    C# 事件(Event)
    Java 与 JavaScript 对websocket的使用
    C# 版dll 程序集合并工具
  • 原文地址:https://www.cnblogs.com/whu-2017/p/9224586.html
Copyright © 2011-2022 走看看