JAVA动态申请数组
JAVA动态申请数组
1.java中就只能用new来申请内存。相对C++有个好处是省了delete操作,回收内存由JVM自动完成。
2.java中区分可变类与不可变类,这两种申请动态内存的方式不同。
3.java中静态数组定义时与申请动态内存一致。
不可变类(int,double,String)
不可变类除了这几个基本类型外,自己定义类也可以定义为不可变类需要加final修饰。具体见:不可变类的优点
不可变类在申请多维数组时不需要手动遍历其每一个元素申请空间,由java虚拟机自动完成。
申请一个大小为 n=10 的一维数组
int n = 10;
int[]a = new int[n];
申请一个大小为n * n的二维数组
int[][]a = new int[n][n];
申请一个大小为n * n * n的二维数组
int[][][]a = new int[10][10][10];
可变类
一般自己定义的类都是可变类。可变类数组申请内存时比较繁琐,需要遍历数组然后对其每一个元素都进行实例化。
申请一个大小为 n=10 的一维数组
import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = 10;My_class[] a = new My_class[n];for(int i=0;i<n;i++)a[i] = new My_class();/** 其他代码*/}
}
class My_class {int s;int t;
}
申请一个大小为n * n的二维数组
import java.util.Scanner;
import java.util.Arrays;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int n = 10;My_class[][] a = new My_class[n][n];for(int i=0;i<n;i++) {for(int j = 0;j<n;j++)a[i][j] = new My_class();}/** 其他代码*/}
}
class My_class {int s;int t;
}
申请三维数组也是一样的逻辑。
JAVA动态申请数组相关推荐
- C语言如何使用malloc动态申请数组
前言 写这篇文章是因为在做C语言题目时,发现有时需要设立动态数组才能较好的解决问题,而我所用的vs2019却不支持直接设立,就比如 int n: int a[n]; 这是不被允许的,而且也会出现许多问 ...
- C++ 动态申请数组
方法1.C++使用vector方便生成: #include <iostream> #include <vector> #include <iomanip> usi ...
- Java动态初始化数组,元素默认值规则
1.动态初始化数组: 定义数组的时候,只确定元素的类型和数组的长度,之后再存入具体数据. 2.动态初始化数组的基本原理: 当你赋值后,数组的默认值0,就会变成你赋的值. 3.数组的动态初始化格式: 格 ...
- Java 动态判断数组维数并取值
一.背景 技术交流群里有同学提了一个看似基础但挺有意思的问题. 问题描述: 一个对象是一个未知的数组类型,可能是 short 二维数组,可能是 int 的三维数组等. 诉求: 想要遍历修改(获取)它的 ...
- 算法:动态申请数组(new)后将数组所有元素置零(初始化数组)的方法(炒鸡简单)(C++语言)
int *arr = new int [n]();//最后的括号,全置零.for(int i = 0;i<n;i++){cout<<arr[i]<<" &quo ...
- C++二维数组动态申请内存
好久没用C++刷题了,今天早上刷了几条题,感觉很陌生了.怪我,大二下实在太颓废了,没啥作为. 今天更新个关于c++二维数组内存申请的问题,当初作为菜鸟初学指针的时候,还是在这方面有点搞不通的.今天用到 ...
- C语言动态二维数组,结构体动态申请内存空间
在C语言中,申请一般数组时,数组大小必须是常量.即使是赋了特定值的变量,也不行,比如:int n=3;int a[3];这样的做法是错误的,我们需要动态申请数组内存,如下申请一个动态整数(int)二维 ...
- C/C++动态开辟数组【C++:new/delete(推荐):int *arr = new int[m];】【C++:vector】【C:malloc() free()】
一.C++的new/delete(推荐) 1.动态开辟一维数组 #include<iostream> #include<stdio.h>using namespace std; ...
- android7.1 动态申请权限改为默认授权,修改PackageManagerService.java下的grantPermissions为true
系统默认情况下,如果需要访问external storage.audio record权限,需要动态申请,对话框举例如下: 如果不需要弹出此对话框来手动授予权限,而是默认授权,可修改framework ...
- 编写一个C程序,实现以下功能:动态申请长度为5的整数空间数组,用户输入5个整数;动态扩展数组空间为8,用户另外输入3个整数,最后输出扩展后的全部数组元素。
DGUT最简单的题.没有之一,只要面向GOOGLE和百度编程就行. 在GOOGLE查询malloc和realloc. malloc:动态申请内存. realloc:动态更改(扩展)内存 代码如下 #d ...
最新文章
- 基于VLC的rtsp服务器linux平台搭建
- 自然语言处理NLP之文本摘要、机器翻译、OCR、信息检索、信息抽取、校对纠错
- UVA10340子序列
- 【AI基础】OpenCV,PIL,Skimage你pick谁
- visualSVN下载与安装
- jqurey操作radio总结
- yii mysql gii_Yii Gii使用
- ie浏览器收藏夹位置更改步骤
- 矩池云上编译安装dlib库
- java就业培训教程 笔记
- Wunderlist – 免费同步 Todo List
- 如何将HTML与win10桌面壁纸,Win10默认桌面背景怎么设置
- POJ - 3258 River Hopscotch 二分
- 【codeforces round#800 B. Paranoid String】DP
- 魂斗罗java代码素材和代码_魂斗罗素材
- 2021年度济南职工医保门统定点医疗机构名单
- 数据库连接池怎么用?
- 计算机整机制造业下滑,多因素导致全球PC出货量下滑 中国增速减缓
- 嵌入式 Linux 驱动开发你想知道的都在这
- 论文的参考文献,添加交叉引用,实现编号自动更新,及编号1无法自动更新问题解决方法!!!