1维数组 2维数组
一.1维数组
概念:
1.存储多个数据(一组数据的容器) 2.元素:数组中数据 3.下标/索引:元素的编号,从0开始
数组的声明:
数据类型 [ ] 数组名;
数组的初始化:
1.静态初始化:初始化时,数据由程序员给定,长度由系统自动分配 2.动态初始化:初始化时,长度由程序员给定,数据由系统分配默认值
//动态初始化String[] names = new String[5];或者String[] names;names = new String[5];
整数类型默认:0 浮点类型默认:0.0 字符类型默认:' ' 布尔类型默认:false 引用类型默认:null(空)
注意:
1.数组是引用数据类型 2.数组可以存储多个数据(这个是和变量最大的不同) 3.数组一旦初始化后,长度不可以改变
数组的排序:冒泡排序
口诀:
N个数字来排队 两两相比,小靠前 外层循环N-1 内层循环N-1-i
int[] is = {45,69,32,28,52,18};for(int i = 0;i<is.length-1;i++){//冒泡排序for(int j = 0;j<is.length-1-i;j++){if(is[j] > is[j+1]){int temp = is[j];is[j] = is[j+1];is[j+1] = temp; for(int num : is){//遍历输出System.out.println(num);
数组的扩容:
含义:新建一个数组,给予新的长度,将原数组数据拷贝过去即可。
//原数组 String[] names = {"北条麻衣","易烊千玺","肖战","王一博"};//新数组String[] newNames = new String[names.length*2];//将原数组中的数据设置到新数组中for(int i = 0;i<names.length;i++){newNames[i] = names[i];}//将新数组的地址赋值给原数组的引用names = newNames;//遍历原数组for(String str : names){System.out.println(str);
数组的删除:
太过简单,此处不做讲解
Arrays工具类:
含义:Java提供的专门操作数组的工具类
工具类:该类里的所有方法都是静态的
API:Java类的使用说明书
int[] is = {45,69,32,28,52,18};//排序(18,28,32,45,52,69)Arrays.sort(is);//查找(返回值:如果key在数组中,就返回数组的下标;否则返回 -插入点-1)int index = Arrays.binarySearch(is,56);System.out.println("下标为:" + index);//替换//Arrays.fill(is,888);//替换局部:从开始下标处(包含)替换到结束下标处(不包含)//Arrays.fill(is,1,4,666);//将数组转换为字符串String str = Arrays.toString(is);System.out.println(str);
二.2维数组
含义:
二维数组中包含了多个一维数组
数组的声明:
数据类型 [ ] [ ] 数组名;
数组的初始化:
1.静态初始化:数据由程序员指定,长度由系统自动分配 2.动态初始化:长度由程序员指定,数据由系统赋默认值 整数类型:0 浮点类型:0.0 字符类型:' ' 布尔类型:false 引用类型:null
//通关下标获取元素String str = names[0][1];System.out.println("通关下标获取元素:" + str);//获取长度System.out.println("获取二维数组中一维数组的个数:" + names.length);//2System.out.println("获取二维数组中第一个一维数组元素的个数:" + names[0].length);//3System.out.println("获取二维数组中第二个一维数组元素的个数:" + names[1].length);//4System.out.println("--------------");//遍历思路:循环取出一维数组,再循环取出一维数组的元素//遍历 -- forfor (int i = 0; i < names.length; i++) {for (int j = 0; j < names[i].length; j++) {System.out.println(names[i][j]);}}System.out.println("--------------");//遍历 -- foreachfor (String[] ss : names) {for (String s : ss) {System.out.println(s);}}
1维数组 2维数组相关推荐
- Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度
1. 创建一个 [3,5] 所有元素为 True 的数组 In [162]: b = np.ones((3,5), dtype=bool)In [163]: b Out[163]: array([[ ...
- C++二维数组名与数组指针的思考
二维数组名和数组指针可以当做一个东西用,但两者之间的含义是不同的. 二维数组名是一个指向数组中所有元素的指针,而数组指针是一个行指针.体现在sizeof()上的不同. #include <ios ...
- HDU2642(二维的树状数组)
二维的树状数组,我记得是模版!^ _ ^ 题意很清楚:就是这部分的原理:sum(x1,y1)+sum(x2-1,y2-1)-sum(x1,y2-1)-sum(x2-1,y1);其实可以和概率论中的一个 ...
- java 3维_java 二维/三维/多维数组
如图,声明一个数组,引用存在栈中,new出来的对象存在堆中. 我把多维数组理解为数组中嵌套另一个数组. 下方代码为三维数组,如果是动态赋值,只需要声明多维数组的大小(new int[3][][]),需 ...
- C# 指定格式的字符串截成一维数组(二维数组)的操作类
指定格式的字符串截成一维数组(二维数组)的操作类 做项目时经常会遇到将"1,3,a,b,d"截成一维数组或将"1,a;2,b;3,c;4,d"截成二维数组.虽然 ...
- 编程之美2.15 二维数组最大子数组的和(数组下标从(1,1)开始)
首先,我们看到这篇文章的题目,我们就会想到之前的那个题目 -- 连续子数组最大和问题.这个问题无疑就是把原问题扩展到二维的情况. 想起来这个问题也不是很难,我们可以求解一维矩阵 ...
- php n维数组扁平化,js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解...
数组的扁平化:将多维数组变成一维数组 对于一个像这样的嵌套数组:a=[1,[2,[3,4]],5,6]我们想要把它变成一个一维数组,有下面几种方法: 方法一:递归一 function parseArr ...
- python将二维数组转换为一维数组_python的set处理二维数组转一维数组的方法示例...
for splitValue in set(dataset[:, featureIndex].tolist()): 首先set是一个无序,无重复的数据结构,所以很多时候使用它来进行去重:但是set接收 ...
- 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )
文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...
- 【C 语言】数组 ( 多维数组操作模型 | 取某个数组元素地址 | 取某个数组元素值 )
文章目录 一.多维数组操作模型 1.取出某个数组元素地址 2.取出某个数组元素值 总结 一.多维数组操作模型 以 // 声明一个多维数组int array[2][3]; 二维数组为例 ; 1.取出某个 ...
最新文章
- Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现
- angular 图片引入_推荐一个 angular 图像加载插件
- Boosting集合算法详解(一)
- 为什么用Spring来管理Hibernate?
- 移除集合效率高还是add高_java集合详解
- php控制器的作用,控制器定义 · ThinkPHP5.0完全开发手册 · 看云
- 转数组_Java中IO必杀技-文件转字节数组
- 两台无线路由桥接(WDS)的简单方法(TP-LINK841N,当AP用)
- Ubuntu在系统栏 给应用程序添加提示图标
- 二等水准数据平差_自编单次二等水准平差计算表
- 关于Tapestry5中的配置项的说明
- vue 自己捣鼓周日程日历组件(WSchedule)
- 《软件随想录》:Joel Spolsky对计算机学生的七大建议
- 怎么安装iso服务器系统安装win7系统,win7纯净版iso怎么安装
- 2021 年年度最佳开源软件
- egg Cannot find module ‘diagnostics_channel‘
- OSPF路由协议及工作原理(一)
- C++中的stack容器适配器
- 智能巡检系统:企业安全生产管理的智能助手
- python并列柱状图x轴设定_Matplotlib绘图时x轴标签重叠的解决办法