Java学习之==>数组【array】
一、定义数组
/**
* 一维数组定义
*
* 为数组插入元素
*/
public void case1() {
// 声明
int[] arr1; // 声明+初始化
int[] arr2 = new int[3];
// 为数组赋值
arr2[0] = 1;
arr2[1] = 2;
arr2[2] = 3; // 声明+静态初始化,arr3和arr4一样
int[] arr3 = new int[]{1, 2, 3, 4, 5};
int[] arr4 = {1, 2, 3, 4, 5};
}
二、数组的遍历
/**
* 一维数组的访问&遍历
*/
public void case2() {
int[] arr = new int[]{1, 2, 3, 4, 5}; // 普通for循环
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
} // foreach, 增强for循环
for (int num : arr) {
System.out.println(num);
} // 第三种方式,jdk1.8支持该种方式
Arrays.stream(arr).forEach(System.out::println);
}
三、二维数组
/**
* 二维数组的定义,初始化,访问,遍历
*/
public void case3() { // 声明
int[][] arr1; // 声明+初始化
int[][] arr2 = new int[3][2];
arr2[0][0] = 1;
arr2[0][1] = 1; // 声明+静态初始化,3*3
int[][] arr3 = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
} /**
* 二维数组的遍历
*/
public void case4() { int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 第一种方式
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[i].length; j++) {
System.out.println(arr[i][j]);
}
} // 第二种方式
for (int[] ints : arr) {
for (int i : ints) {
System.out.println(i);
}
}
}
四、总结
定义
- 多个相同数据类型的数据按着顺序排列在一起组成的结构
属性
- 名称: 存储数组在内存中的地址
- 索引: 每个元素在数组中都有唯一的位置用于定位元素
- 元素: 数组中的每一个数据,即为元素
- 长度: 即数组中元素的个数
特点
- 元素有序排列
- 内存中空间连续
- 属于引用数据类型
注意
- 长度一旦指定即不可修改
五、练习
1、定义一个整型数组,找最大的元素
/**
* 数组练习:定义一个整型数组,找最大的元素
*/
public void case1(){
int[] arr = new int[10];
for (int i=0;i<10;i++){
arr[i] = i;
}
System.out.println(Arrays.toString(arr));
int max = arr[0];
for (int j=0;j<arr.length;j++){
if (arr[j] > max){
max = arr[j];
}
}
System.out.println(max);
}
2、定义一个二维数组,求所有元素的和
/**
* 数组练习:定义一个二维数组,求所有元素的加和
*/
public void case2(){
// 声明和初始化一个二维数组
int[][] arr = new int[5][3];
// 生成一个二维数组
for (int i=0;i<5;i++){
for (int j=0;j<3;j++){
arr[i][j] = i + j;
System.out.print(arr[i][j]+" ");
}
}
// 循环二维数组的每个元素然后相加
int sum = 0;
for (int i=0;i<arr.length;i++){
for (int j=0;j<arr[i].length;j++){
sum += arr[i][j];
}
}
// 换行
System.out.println();
System.out.println(sum);
}
3、往数组指定位置插入/删除一个元素
/**
* 往数组指定位置插入一个元素
*/
int[] insertarray(int[] arr, int index, int value){ int[] newArr = new int[arr.length + 1];
for (int i = 0; i < arr.length; i++) {
newArr[i] = arr[i];
}
for (int i = newArr.length - 1; i > index; i--) {
newArr[i] = newArr[i - 1];
}
newArr[index] = value;
arr = newArr; return arr;
} /**
* 删除数组中指定位置的元素
*/
int[] deletearray(int[] arr, int index){ int[] newArr = new int[arr.length - 1];
for (int i = 0; i <= arr.length - 1; i++){
if (i < index){
newArr[i] = arr[i];
}
else if (i > index){
newArr[i-1] = arr[i];
}
}
return newArr;
}
Java学习之==>数组【array】的更多相关文章
- 数据结构和算法(Java版)快速学习(数组Array)
Java数组 在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型. 用类封装数组实现数据结构 数据结构必须具有以下基本功能: ①.如何插入一条新的数据项 ②.如何寻找某一特定 ...
- Java学习之数组的简单用法
•概念 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作. 数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配: 而数组的定义语法有两种 ...
- 学习Swift -- 数组(Array) - 持续更新
集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...
- JAVA学习笔记--数组初始化
JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...
- PHP学习之数组Array操作和键值对操作函数(一)
PHP 中的数组实际上是一个有序映射.映射是一种把 values关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合, ...
- java collection与数组(Array)互转
先确定几个概念,这里说的数组元素,除基本类型数组外,并非指元素对象本身,而是它们的引用.换句话说,基本数组的元素是数值本身,非基本数组的元素都是一个地址(对应指针). 1.collection的元素不 ...
- Java学习:数组的使用和注意事项
数组 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可以改变 数组的初始化:在内存当中创建一个数组, ...
- java学习之数组(二)
在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...
- java学习之数组(一)【内存】
在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...
随机推荐
- windows文本操作字符命令含义
r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. rb+ 读写打开一个二进制文件,只允许读写数据. rt+ 读写打开一个文本文件,允许读和写. w 打开只写文件,若文件存在 ...
- DP问题练习1:数字三角最短路径问题
DP问题练习1:数字三角最短路径问题 问题描述 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 样例: 比如,给出下列数字三角形: 2 3 4 6 5 7 4 ...
- 谈谈我所理解的HashMap和HashTable
HashMap和HashTable之间的联系和区别如下: 1.HashMap几乎可以等价于Hashtable,但是它们之间继承不同:HashMap extends AbstractMap implem ...
- 【bzoj 4046 加强版】Pork barrel
刚考完以为是神仙题--后来发现好像挺蠢的-- QwQ 题意 给你一张 \(n\) 个点 \(m\) 条边的无向图(不一定连通),有 \(q\) 组询问,每组询问给你 \(2\) 个正整数 \(l,h\ ...
- 解决 Jenkins 乱码以及命令不存在的问题
方法一: Jenkins----系统管理----系统设置----全局属性----勾选环境变量 键 LANG 值 zh_CN.UTF-8 方法二(如果脚本用的是python): PYTHONIOENCO ...
- 欧拉函数 || Calculation 2 || HDU 3501
题面: 题解:欧拉函数的基础应用,再套个很 easy 的等差数列前 n 项和就成了. 啊,最近在补作业+准备月考+学数论,题就没怎么写,感觉菜得一匹>_< CSL加油加油~! 代码: #i ...
- POJ3254Corn Fields (状态压缩or插头DP)
Description Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; ...
- hdu4507 吉哥系列故事——恨7不成妻[数位DP]
这题面什么垃圾玩意儿 首先看到问题格式想到数位DP,但是求的是平方和.尝试用数位DP推出. 先尝试拼出和.设$f[len][sum][mod]$表示填到$len$位,已填位置数位和$sum$,数字取余 ...
- Mac 安装RN android开发环境
前言 前面介绍了MAC 安装,再来讲讲mac 安装 安卓的开发环境 首先貌似很多Mac自带安卓JDK ,你可以在终端上输入java -version 看是否已经有java开发环境. 如果没有java开 ...
- Word:转换PDF
本文适用于Word 2007 + Windows 7,造冰箱的大熊猫@cnblogs 2018/8/3 一.Word文档转PDF文档 把Word文档转换为PDF,有两个免费解决方案 1.Microso ...