首页 > 其他分享 >Day10 数组

Day10 数组

时间:2023-12-04 17:44:25浏览次数:26  
标签:10 int dataType Day10 数组 new array

1. 数组声明

//方法一:首选
dataType[] arrayName;
//方法二:非首选,像c++
dataType arrayName[];

2. 数组创建

2.1 动态初始化

//不初始化,大小自行决定
dataType[] array = new dataType[arraySize];
  • 如果动态初始化会赋予该类型元素的默认值:0,0.0,false
  • 可以指定数组长度,其中数组长度:arrayName.length;
//例如:
//int[] a = new int[10];//创建了一个长为10的int型数组
int[] a;
a = new int[10];// 4-5与3等价
System.out.println(a);//输出[I@1b6d3586

2.2 静态初始化

//不简写格式:
dataType[] arrayName = new dataType[]{value1, value2, value3, ... };
//简写格式:
dataType[] arrayName = {value1, value2, value3, ... };
  • 静态初始化,数组大小由系统根据初始赋值数量计算自动得出
  • 不能手动给arraySize,即使和赋值数量相等也不行,也就是说第二个[]内不可以有参数
  • 此种方式也保留了更改数组内每个值的权利

3. 数组的存放

3.1数组内容(元素)都是存放在堆中的。

  • 无论数组是动态初始化还是静态初始化都用了 new 关键字来创建空间。静态初始化简写格式实际上也 new 了。

3.2 数组名存放在堆或栈中

数组名实际上是一个引用,存放的是堆区的地址值。这个变量存放在堆区还是栈区取决于它是局部变量还是实例变量。

public class Number {
    int array = new int [10];//此array在堆区
    
    public void fun(){
        int array = new int [10];//此array在栈区
    }
}
3.2.1 地址扩展
int[] a = new int[10];//创建了一个长为10的int型数组
System.out.println(a);//输出[I@1b6d3586

地址值的格式含义 [I@1b6d3586

  • [:表示当前是一个数组
  • I :表示当前数组里面的元素都是int类型的
  • @:表示一个间隔符号。(固定格式)
  • 1b6d3586:才是数组真正的地址值.(十六进制), 平时我们习惯性的会把这个整体叫作数组的地址值。

4.数组的使用

public static void main(String[] args) {
   int[] array = new int[] {1,2,3,4,5};
   int count = 0;
    //增强for遍历数组
   for (int a:array) {
       System.out.println("array["+(count++)+"]=" + a);
   }
   System.out.println("-------------");
    
   array[2]=4;//通过下标修改元素的值 
     
   //普通for遍历数组
   for (int i = 0; i < array.length; i++) {
       System.out.println("array["+i+"]=" + array[i]);
   }
}

5.Arrays类

  • Arrays类里的方法都是静态方法可以通过Arrays.方法名()直接调用
import java.util.Arrays;
    

标签:10,int,dataType,Day10,数组,new,array
From: https://www.cnblogs.com/wendao101/p/17875536.html

相关文章

  • 除自身以外数组的乘积
    题解模板难度:简单|中等√|困难-------------------用时:28分钟(第一次)-------------------作题日期:2023-12-04ps:本人理解有限,以下是自我理解,官方和大佬有更完整和详细的解析!!!题目描述题目描述给你一个整数数组nums,返回数组answer,其中answer[i]......
  • 代码随想录算法训练营第五天| 242.有效的字母异位词 349. 两个数组的交集 1. 两数之
    LeetCode242.有效的字母异位词题目链接: LeetCode242思路: 使用C++自带的库函数,经过排序后进行比较(使用库函数) classSolution{public:boolisAnagram(strings,stringt){if(s.length()!=t.length())returnfalse;sort(s.begin(),......
  • 秦疆的Java课程笔记:51-52 数组 什么是数组&数组的声明和创建
    51什么是数组数组是入门阶段的最后部分。数组的定义:数组是相同类型数据的有序集合。数组描述的是相同类型的若干数据,按照一定的先后次序排序组合而成。其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们。52数组的声明和创建首先必须声明数......
  • LeetCode643. 子数组最大平均数I
    题目描述思路:滑动窗口模板定义需要维护的变量//1.定义需要维护的变量doublesum=0;doublemax_avg=Integer.MIN_VALUE;窗口固定大小为k,所以用ifif(end-start+1==k){ sum-=nums[start]; start+=1;}方法一:classSolution{publicdouble......
  • yocto-queue 库如何实现替代数组【玩转源码】
    前言前面提到了可以使用yocto-queue库代替Array操作数组,本篇则深入源码了解一下yocto-queue是如何实现替代数组的。yocto-queue源码分析源码中的代码量相对较少,读起来会比较轻松,看似可以琢磨的点少,其实不然。代码中包含知识点主要包括类的属性、链表与数组的对比、队列、自定义迭代......
  • ABC 331 F - Palindrome Query(字符串哈希,树状数组)
    字符串哈希[OI-Wiki](字符串哈希-OIWiki(oi-wiki.org))分为两种哈希方式:以左为高位和以右为高位如果只是快速查询每个字串的哈希值,用以左为高位比较简单,即\[Hash[l...r]=Hash[1...r]-Hash[1...(l-1)]\timesbase^{r-l+1}\]但是如果有修改操作,需要将每一位的Hash值存......
  • 2302. 统计得分小于 K 的子数组数目(双指针,贡献法,子数组问题)
     枚举子数组问题,常见有固定一个点,枚举另一个端点,还有枚举中间点。本题使用双指针算法,对右端点进行枚举,每次累加[l,r]区间内,所有以右端点为结尾的子数组对答案的贡献度,也就是长度r-l+1classSolution:defcountSubarrays(self,nums:List[int],k:int)->int:......
  • day10 动态Jenkins-Slave解决方案-发布流程设计 (4.1.1-4.2)
    一、动态Jenkins-Slave解决方案上1、基于Jenkins的Master-Slave模式实现CI-CD1.1痛点梳理构建任务高峰期,Jenkins服务频发不可用状态服务虚拟机资源有限,不能随意调用空闲资源Jenkins服务器宕机后需要人工手动重启1.2思路分析基于K8S动态Slave模式优势基于云原生现......
  • react中数组的操作
    添加元素:你可以使用push方法来在数组的末尾添加一个元素,或者使用unshift方法来在数组的开头添加一个元素。你也可以使用concat方法或者扩展运算符...来合并两个数组。letarr=[1,2,3];arr.push(4);//arrisnow[1,2,3,4]arr.unshift(0);//arrisnow[0,1,2,3,......
  • PTA|C语言|数组练习题
    --------------------------------------------------------------------------------求最大值及其下标本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。输入格式:输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。输出格式:在一行......