Java基础-7数组
一)、什么是数组:
数组是一组具有相同类型和名称的变量集合,把一系列相同类型的数据保存在一起,这些变量称为数组的元素;每个元素都有一个编号,这个编号叫做下标,下标从 0 开始;元素的个数被称为数组的长度,数组数一种复合数据类型。
数组的特点是其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。这一点也是数组的缺点;可以存放重复的元素。
二)、数组定义和初始化:
数组定义完成后必须经过初始化才可以使用,初始化数组的方式可以分为两种,静态初始化和动态初始化;
静态初始化: 数据类型[] 数组名 ={元素1,元素2……};
动态初始化:数据类型[] 数组名= new 数据类型[数组长度]; 或 数据类型[] 数组名 =new 数据类型[]{元素1,元素2……};
静态初始化中 声明并直接赋值,创建内存空间。
第一种动态初始化中 声明并创建内存空间,等待赋值。第二种动态初始化中 声明并创建内存空间,并赋值。
三)、多维数组:
Java中数组分为一维数组和多维数组,多维中每行的元素个数不同,即每行的列数可以不同。已二维数组举例
二维数组声明与初始化:
数组元素类型 数组名[][] = {{行数,列数},{行数,列数},,……}; 示例: int temp [ ] [ ] = {{1,2},{2,3},{3,4,5}};
数组元素类型 数组名[][] = new 数组元素类型[行数][列数]; 示例: int[][] temp; temp=new int[3][] ;
数组元素类型[][] 数组名 = new 数组元素类型[行数][列数]; 示例: int[][] temp= {{1,2},{3,4}};
二维数组的初始化也分为静态和动态两大种
静态初始化:在定义数组的同时为数组分配空间。不必指出数组每一维的大小,系统会根据初始化时给出的初始值个数自动算出每一维的大小。
动态初始化:对高维数组来说,分配内存空间有以下两种方法。
数组元素类型 数组名[][] = new 数组元素类型[行数][列数];
数组元素类型[][] 数组名 = new 数组元素类型[行数][列数];
//一维数组遍历
int[] arr =new int[]{1,2,3,4,5,6};
int l=arr.length-1;
for(int a=0;a<=l;a++) {
System.out.println(arr[a]);
}
遍历数组时用到 length 关键字来取到数组的长度,然后利用for循环下标将数组全部输出
int[][] arr= {{1,1},{2,2},{3,3}};
for(int a=0;a<=arr.length-1;a++) {
System.out.println("数组"+arr[a]);
for(int b=0;b<=arr[a].length-1;b++) {
System.out.println("数组输出"+arr[a][b]);
}
}
给数组赋值:
一维数组
int[] arr= new int[5];
for(int a=0;a<=arr.length-1;a++) {
arr[a]=a;
System.out.print(arr[a]+" ");
}
结果:
0 1 2 3 4
二维数组
int[][] arr=new int[3][];
arr[0]=new int[1];
arr[1]=new int[2];
arr[2]=new int[3];
for(int a=0;a<=arr.length-1;a++) {
for(int b=0;b<=arr[a].length-1;b++) {
arr[a][b]=b;
System.out.print(arr[a][b]+" ");
}
System.out.println(" ");
} 结果:
0
0 1
0 1 2
Java基础-7数组的更多相关文章
- Java基础-反转数组
/** java基础,如何将一个数组反转,思考方法采用使用临时变量的情况下,将第一个元素与第二个元素进行反转,需要定义两个索引,一个记录数组的第一个元素与最后一个元素,将其两两交换* */public ...
- Java基础之 数组详解
前言:Java内功心法之数组详解,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 数组概念 同一种类型数据的集合.其实数组就是一个容器. 数组 ...
- java基础(十) 数组类型
1. 数组类简介 在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...
- java 基础概念 -- 数组与内存控制
问题1: Java在声明数组的过程中,是怎样分配内存的? 在栈内存中 建一个数组变量,再在堆内存中 建一个 数组对象.至于详细的内存分配细节,还得看 该初始化是 数组动态初始化 还是 数组静态初始化. ...
- Java基础:数组的声明,循环,赋值,拷贝。
数组的声明 一般有两种形式的声明: int[] a; int a[]; 这两种声明都没错,但是大多数都使用第一种声明,因为变量名是独立的,不带任何符号. 声明一个数组,并没有将a真正的初始化为一个数组 ...
- Java基础总结--数组
---数组的定义---组织存储一组数据1.存放相同类型数据的集合--就是一种容器本质上变量也是一种容器--区别就是只存储了一个数据的容器--面对容器,而不是分散的数据eg.买一盘鸡蛋--蛋托其实就是容 ...
- java 基础知识-数组的7种算法(排序、求和、最值、遍历...)
遍历 遍历就是把这个数组的每个元素 显示出来 遍历的方法就是先定义这个数组的大小,然后用FOR循环来完成数组,例如 double[] score = new double[5]; Scanner in ...
- Java基础之数组类型
对于Java,前面的一些基础概念不是很想写,看了看还是从数组开始写吧(毕竟数组是第一个引用类型,相对复杂一点),我也是学了JAVA不是很久,目前看完了JAVA的基础视频,还有JAVA疯狂讲义这本书的大 ...
- 黑马程序员——JAVA基础之数组
------- android培训.java培训.期待与您交流! ---------- 数组: 数组的定义: 数组是相同类型数据的集合, 描述的是相同类型的若干个数据按照一定的先后顺序排列组合而成,其 ...
- Java基础从数组到集合之间关键字的区别!!!!
1.&& 和 &区别和联系: 相同点 : 结果是一样的. 不同点 :如果使用双&号判断,如果说条件一为false,不会判断条件二,但是单&号会继续判 ...
随机推荐
- ZOJ - 2112 Dynamic Rankings(BIT套主席树)
纠结了好久的一道题,以前是用线段树套平衡树二分做的,感觉时间复杂度和分块差不多了... 终于用BIT套函数式线段树了过了,120ms就是快,此题主要是卡内存. 假设离散后有ns个不同的值,递归层数是l ...
- 【CCPC-Wannafly Winter Camp Day4 (Div1) G】置置置换(动态规划)
点此看题面 大致题意: 求出有多少个长度为\(n\)的排列满足对于奇数位\(a_{i-1}<a_i\),对于偶数位\(a_{i-1}>a_i\). 考虑打表? 考虑每次只有一个数\(n\) ...
- CentOS系统中使用iptables设置端口转发
echo 1 > /proc/sys/net/ipv4/ip_forward 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0 ...
- 牛客国庆day 6 A
题目链接 : https://ac.nowcoder.com/acm/contest/206/A 这个题去年有幸去秦皇岛参加集训,见过这道题,当时特别菜还不会网络流,现在学了一点发现这个网络流还是比较 ...
- 第18章 SysTick—系统定时器—零死角玩转STM32-F429系列
第18章 SysTick—系统定时器 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/ ...
- iOS面试题总结(持续更新)
过段时间打算跳槽,找了一些面试题来做,在这里做个总结方便review,希望能对要面试的童鞋有帮助. 以下为面试题: 运行以下代码会有什么结果 NSString *str1 = @"str1& ...
- LeetCode700. Search in a Binary Search Tree
题目 给定二叉搜索树(BST)的根节点和一个值. 你需要在BST中找到节点值等于给定值的节点. 返回以该节点为根的子树. 如果节点不存在,则返回 NULL. 例如, 给定二叉搜索树: 4 / \ 2 ...
- MySQL巧用FIND_IN_SET和GROUP_CONCAT函数减少Java代码量
数据库表简介:物品表 `id` int(11) '物品id,唯一标识', `name` varchar(255) '物品名称', `level` int(11) '物品类别等级,礼品包为最高级1,类 ...
- linux特殊权限位suid
特殊权限位基本说明(了解): linux系统基本权限位为9位权限,但还有额外3位权限位,共12位权限: suid s(x) S 4 用户对应的权限位(用户对应的3位 ...
- python3.X中pickle类的用法(cPickle模块移除了)
1.python3.x中移除了cPickle模块,可以使用pickle模块代替.最终我们将会有一个透明高效的模块. 2.因为存储的是对象,必须使用二进制形式写进文件 #!/usr/bin/python ...