一、定义数组

/**
* 一维数组定义
*
* 为数组插入元素
*/
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】的更多相关文章

  1. 数据结构和算法(Java版)快速学习(数组Array)

    Java数组 在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型. 用类封装数组实现数据结构 数据结构必须具有以下基本功能: ①.如何插入一条新的数据项 ②.如何寻找某一特定 ...

  2. Java学习之数组的简单用法

    •概念 其实所谓的数组指的就是一组相关类型的变量集合,并且这些变量可以按照统一的方式进行操作. 数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又会牵扯到内存分配: 而数组的定义语法有两种 ...

  3. 学习Swift -- 数组(Array) - 持续更新

    集合类型--数组 Array是Swift中的一种集合类型:数组,数组是使用有序列表储存同一类型的多个值,与OC的NSArray的最大不同是,Swift的数组是值类型,OC的数组是引用类型 声明数组的方 ...

  4. JAVA学习笔记--数组初始化

    JAVA中,数组只是相同类型的.用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.数组通过方括号下标操作符[]来定义和使用,要定义一个数组只需在类型名后面加上一个方括号即可,如: int[] ...

  5. PHP学习之数组Array操作和键值对操作函数(一)

    PHP 中的数组实际上是一个有序映射.映射是一种把 values关联到 keys 的类型.此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合, ...

  6. java collection与数组(Array)互转

    先确定几个概念,这里说的数组元素,除基本类型数组外,并非指元素对象本身,而是它们的引用.换句话说,基本数组的元素是数值本身,非基本数组的元素都是一个地址(对应指针). 1.collection的元素不 ...

  7. Java学习:数组的使用和注意事项

    数组 数组的概念:是一种容器,可以同时存放多个数据值 数组的特点: 数组是一种引用数据类型 数组当中的多个数据,类型必须统一 数组的长度在程序运行期间不可以改变 数组的初始化:在内存当中创建一个数组, ...

  8. java学习之数组(二)

    在上一节中我们讲到了数组的概念,定义,以及在内存当中的表现形式.那么这里我们来说一下,数组的另一种定义方式. 在上一篇当中我们规定是这个样子定义数组的, class ArrDemo { public ...

  9. java学习之数组(一)【内存】

    在java语言当中,为了更方便多个数据的管理,这里提供数组. 比如说,现在我们有一组数据,7,8,9,9,为了保存这四个数据,我们分别要定义变量来保存,少了还好说.但是假如,有100多个数据呢,我们一 ...

随机推荐

  1. Runtime.getRuntime.exec()执行linux脚本导致程序卡死问题

    rumtime程序执行中出现卡住,执行成果达不到预期的标准.查看输出流以及错误流程是否内存占满了.开两个线程来运行输出流程和错误流程. rumtime运行windows脚本执行是要添加执行环境 cmd ...

  2. 14Filter&Listener

    1.Filter:过滤器 1.1 概念 生活中的过滤器:净水器,空气净化器,土匪. web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 过滤器的作用: 一般用于完成 ...

  3. 【转载】C++ 11中的右值引用

    本篇随笔为转载,原博地址如下:http://www.cnblogs.com/TianFang/archive/2013/01/26/2878356.html 右值引用的功能 首先,我并不介绍什么是右值 ...

  4. vim简明教程(附快速记忆方法)

    vim分为四种模式: 普通模式(normal mode) 插入模式(insert mode) 可视模式(visual mode) 命令模式(excute mode) 下面整理了常用的快捷键和记忆方法( ...

  5. 微信小程序let和var以及const有什么区别

    在JavaScript中有三种声明变量的方式:var.let.const. var:声明全局变量,换句话理解就是,声明在for循环中的变量,跳出for循环同样可以使用. for(var i=0;i&l ...

  6. 如何理解react中的super() super(props)

    class WebSite extends React.Component { constructor() { super(); this.state = { name: "菜鸟教程&quo ...

  7. 【leetcode】LCP 2. 分式化简

    题目如下: 有一个同学在学习分式.他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式.在本题中,所有系数都是大于等于0的整数. 输入的cont代表连分数的系数(cont[0]代表上 ...

  8. Oracle体系结构2

    Buffer Cache 作用:缓存dbf中的数据 例子:A和B重复访问同一张表的几率是很大的,如果每次访问dbf时都要发生物理IO,这样会导致数据库的性能非常低 由于这个例子,当一个进程访问dbf时 ...

  9. HGOI 20190709 题解

    Problem A 紫色激情 一个序列$\{a_n\}$,求出方差最大的子序列. 其中方差 [l,r] 的定义是$S^2 = \frac{1}{n} \sum\limits_{i=l}^{r} (x_ ...

  10. Python字典里的5个黑魔法

    Python里面有3大数据结构:列表,字典和集合.字典是常用的数据结构,里面有一些重要的技巧用法,我把这些都整理到一起,熟练掌握这些技巧之后,对自己的功力大有帮助. 1.字典的排序: 用万金油sort ...