首页 > 其他分享 >数组

数组

时间:2024-08-16 22:16:36浏览次数:6  
标签:int System arrays 数组 array out

数组

数组是相同类型数据的集合

相同类型若干个数据,按照一定的先后次序排列组合。

每一个数据称作一个数据元素,每个数据元素可以通过一个下标来访问他们

声明

package com.yang.array;

public class arrayDemo01 {
    public static void main(String[] args) {
        //变量的类型 变量的名字 = 变量的值

        int[] nums;//定义 首选 声明一个数组

        //int num2[];//C 和 C++

        nums = new int[10];//这里可以存放10个int类型的数字 从0-9 创建1个数组

        //int[] nums2 = new int [10]; 可以写一起

        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        nums[3] = 2;
        nums[4] = 1;
        nums[5] = 3;
        nums[6] = 1;
        nums[7] = 2;
        nums[8] = 3;
        nums[9] = 2;

        //计算所有元素的和
        int sum = 0;
        //获得数组的长度 array.length
        for (int i = 0; i < nums.length; i++) {
            sum = sum + nums[i];
        }

        System.out.println("总和为:"+sum);

    }
}

内存分析

方法区

声明中的代码 1 定义一个数组 2 创建一个数组 3 给数组赋值

![image-20240816210157529](/Users/a1-6/Library/Application Support/typora-user-images/image-20240816210157529.png)

三种初始化

静态初始化

动态初始化

默认初始化

package com.yang.array;

public class arrayDemo02 {
    public static void main(String[] args) {

        //静态初始化:创建+赋值
        int[] a = {1,2,3};
        System.out.println(a[0]);

        //动态初始化 包括默认初始化
        int[] b = new int[10];
        b[0] = 10;
        System.out.println(b[0]);
        System.out.println(b[2]);
        System.out.println(b[1]);

    }
}

数组的四个基本特点

  • 长度确定,一旦创建,大小不能改变

  • 必须相同类型

  • 可以说任何数据类型,包括基本和引用类型

  • 数组变量属于引用类型,java中对象是在堆中的,数组本身就是对象。无论原始类型还是其他对象类型都是在堆中的。

    package com.yang.array;
    
    public class arrayDemo03 {
        public static void main(String[] args) {
            int arrays[] = {1,2,3,4};
    
            //打印全部的数组元素
            for (int i = 0; i < arrays.length; i++) {
                System.out.println(arrays[i]);
            }
            System.out.println("=============");
            //计算元素的总和
            int sum = 0;
            for (int i = 0; i < arrays.length; i++) {
                sum += arrays[i];
            }
            System.out.println("sum = "+ sum);
    
            System.out.println("=============");
            //查找最大元素
            int max = arrays[0];
            for (int i = 1; i < arrays.length; i++) {
                if (arrays[i]>max){
                    max = arrays[i];
                }
            }
            System.out.println("max = "+ max);
    
        }
    }
    
    

数组边界

合法区间[0,length - 1],否则就会越界

小结

  • 数组是相同类型的有序集合
  • 数组也是对象,元素相当于对象的成员变量。
  • 数组长度的缺点的不可变的如果越界,则报ArrayIndexOutBondException

数组的使用

普通的for循环

For - each 循环

数组作方法入参

数组作返回值

package com.yang.array;

public class arrayDemo04 {
    public static void main(String[] args) {
        int[] arrays = {1,2,3,4};
        //JDK1.5,没有下标
        //for (int array : arrays) {
          //  System.out.println(array);
        //}
        //printArray(arrays);
        int[] reverse = reverse(arrays);
        printArray(reverse);
    }

    //打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]+" ");
        }

    }

    //反转数组
    public static int[] reverse(int[] arrays){
        int[] result = new int[arrays.length];

        //反转的操作
        for (int i = 0,j = result.length-1;i < arrays.length ; i++,j--) {
            result[j] = arrays[i];
        }
        return result;
    }

}

二维数组

package com.yang.array;

public class arrayDemo05 {
    public static void main(String[] args) {
        //2行两列 面向对象
        /*
        1,2  array[0]
        3    array[1]
         */
       int[][] array = {{1,2},{3}};
//        System.out.println(array.length);
        for (int i = 0; i < array.length; i++) {
            for (int j = 0; j < array[i].length; j++) {
                System.out.println(array[i][j]);
            }
        }
        //printArray(array[0]);
    }
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i]);
        }
    }
}

标签:int,System,arrays,数组,array,out
From: https://www.cnblogs.com/yoyy3/p/18363747

相关文章

  • leetcode前缀和(2438. 二的幂数组中查询范围内的乘积)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。描述给你一个正整数 n ,你需要找到一个下标从 0 开始的数组 powers ,它包含 最少 数目的 2 的幂,且它们的和为 n 。powers 数组是 非递减 顺序的。根据前面描述,构造......
  • 销售报表-数组展示和数据组装
    销售报表-数组展示和数据组装前端Vue使用element-UItable后端PHP后端PHP数据处理:<?php//获取数据后,需要在每个大区的结尾插入,各大区的数据统计行//循环获取每个大区的结尾,用于插入每个大区每个type的统计值记录foreach($dataas$key=>$value){//检查当前......
  • C:一个字符数组里面解析出多个字符串
    一个字符数组里面存放了多个字符串,每个字符串以‘\0’。要求把这些有效字符串筛选出来并输出。 扩展:'\0\0'表示字符串结束。V2方法就是实现的这个扩展功能。 #include<stdio.h>#include<string.h>#include<malloc.h>voidprintSzNameList(charszNameList[],in......
  • 数组
    数组是一个能存储多个同种类型数据的容器//数组作为参数传递:传递时传递的仅仅是存放首地址的变量,传递时注意将数组长度一同传递//索引越界:索引从0~length-1#include<stdio.h>voidgetArr(intarr[],intlen);intmain(){intarr1[]={1,2,3,4,5};intlen=sizeof(arr1)/siz......
  • 遍历数组对象
    前提条件:数组对象中的id唯一1consttree=[2{id:1},3{id:2,4children:[5{id:3,6children:[7{id:4,8children:[9{i......
  • C语言-使用数组法,指针法实现将一个5X5的矩阵中最大的元素放在中心,四个角分别放四个最
    1.题目要求:将一个5X5的矩阵中最大的元素放在中心·,四个角分别放四个最小的元素(顺序为从左到右,从上到下,从小到大存放),写一函数实现之。2.数组法实现#define_CRT_SECURE_NO_WARNINGS1#include<stdio.h>//一、数组法实现intmain(){ intarr[5][5]={ {1,2,3,4,5},......
  • 【代码随想录】一、数组:6.前缀和
    二刷的时候发现更新了一些新的题目,尝试写了写后,发现我完全不会ACM输入输出模式。这两天在补前几天没背的八股,写得不够满意(几乎是完全誊代码了),先放着,后面再补充补充吧。1.题目:44.开发商购买土地#include<iostream>#include<vector>#include<climits>usingnamespacestd......
  • 【代码随想录】一、数组:4.滑动窗口
    1.题目1:209.长度最小的子数组1.1.解法1:暴力解法(已超时)使用两层循环,外层循环确定最小子数组开始的位置(i),内层循环确定最小子数组结束的位置(j)。在每次跳出内层循环时,sum应重置为0。当找到的子数组相加的和等于或大于目标值(target)时,算出此刻子数组的长度(j-i+1),并更新result的值......
  • 【代码随想录】一、数组:5.螺旋矩阵
    本题并不涉及到什么算法,就是模拟过程,但却十分考察对代码的掌控能力。1.题目1:59.螺旋矩阵II1.1.解法1:模拟本题的重点还是像之前的“704.二分查找”,坚持循环不变量原则,即在本题中遍历每条边时,坚持相同的原则。如下是一个示例,即n=5,我们考虑根据圈数和边数来进行遍历:由外圈到内......
  • KMP算法——理解 next 数组
    !注意!本文与《王道》,《严书》有所不同,字符串均从第0位开始,next数组没有添加常数1。博客为梳理思路所用,难免纰漏,希望不吝赐教。在字符串匹配中,设m为待匹配的主串S长度,n为找寻的模式串T长度。如:在主串S='ababc'中寻找模式串T='abc'则字符串匹配算法返回S中第......