一维数组:1:/*数组:1. 数组是一种引用类型2. 数组是一种简单的数据结构,线性的机构3. 数组是一个容器,可以用来存储其他元素,4. 数组也是可以存储任意数据类型的元素5. 数组分为:一维数组,二维数组,三维数组,多维数组6. 数组中的存储的元素类型 是统一的7. 数组的长度是不可变的,数组一旦创建长度就是不可变的,固定的声明数组语法:<1>. 数组元素的类型[] 变量名称<2>. 数组元素的类型 变量名称[]*/
public class ArrayTest01{public static void main(String[] args){// 声明一个一维数组,用来存储int类型int[] i = {1,2,3,4,5}; // 这种方式称之为“静态初始化的一维数组”// boolean 类型的数组boolean[] j = {true,false,true,false};// String类型数组String[] strs = {"中山学院","农业学院","我就是吃西葫芦"};// byte数组byte[] k = {1,2,3};// char数组char[] m = {'a','b','c'};// Object数组Object o1 = new Object();Object o2 = new Object();Object o3 = new Object();Object[] bojs = {o1,o2,o3};}}2:/*第一种:使用 new 操作符来创建数组格式为:new 数组元素的数据类型 [数组元素的个数]*/
public class ArrayTest02{public static void main(String[] args){// 声明一个int类型的数组,长度为 5// 数组中的元素,必须为int类型int[] data = new int[5];// 给数组中的元素赋值,如果不赋值默认为 该类型的默认值 如果是int类型就为 0;// 赋值: 变量名[下标] 下标从0开始data[0] = 16;data[1] = 17;data[2] = 10;data[3] = 90;data[4] = 50;// 输出数组中的元素,变量名[下标]System.out.println(data[0]);System.out.println(data[1]);System.out.println(data[2]);System.out.println(data[3]);System.out.println(data[4]);System.out.println("--------------------------------------");System.out.println("数组的长度为:"+data.length);for(int i = 0; i < data.length; i ++){System.out.println("下标为:"+ i +" 的值:" + data[i]);    }// 输出数组中的指定的值System.out.println("data[2] = " + data[2]);// 报错:ArrayIndexOutOfBoundsException// 数组的下标越界System.out.println("data[6] = " + data[6]);// 不能赋值成功,数组中的类型必须是 一种类型data[1] = "aaaa";}}/*修正 空指针异常*/
3:public class ArrayTest04{public static void main(String[] args){// 声明引用类型的数组Student[] student = new Student[2];// 方式一:// 初始化数组元素为 Student对象    student[0] = new Student();student[0].id = 100;student[0].name = "ming";student[1] = new Student();student[1].id = 200;student[1].name = "keke";        System.out.println("id[0] = "+student[0].id + "  name[0] = " + student[0].name);System.out.println("id[1] = "+student[1].id + "  name[1] = " + student[1].name);// 方式二:// 可以采用另外的方式来赋值
        Student arry = new Student();arry.id = 1111;arry.name = "ming";student[0] = arry;Student keke = new Student();keke.id = 2222;keke.name = "Keke";student[1] = keke;        System.out.println("----------------------------------------------");for(int i = 0; i < student.length; i ++){System.out.println("id = " + student[i].id + " name = " + student[i].name);}}}class Student{int id;String name;}

二维数组:1:/*二维数组特点:1. 二维数组 是一个特殊的一维数组2. 特殊的一维数组,特殊在这个一维数组中每一个元素都是“一维数组”*/
public class ArrayTest01{public static void main(String[] args){// 声明一个二维数组int[][] m = new int[2][3];// 对二维数组赋值m[0][0] = 1;m[0][1] = 2;m[0][2] = 3;m[1][0] = 4;m[1][1] = 5;m[1][2] = 6;System.out.println(m[0].length);// 输出二维码// 纵向循环在外for(int i = 0; i < m.length; i++){// 对一维数组m[i]进行遍历for(int j = 0; j < m[i].length; j++){System.out.println(m[i][j]);    }}/*当 i = 0, i < 2 满足条件,j = 0, j < 3 满足条件 输出:m[0][0] 最终输出:1; j++j = 1, j < 3 满足条件 输出:m[0][1] 最终输出:2; j++j = 2, j < 3 满足条件 输出:m[0][2] 最终输出:3; j++j = 3, j < 3 不满足条件,跳出循环 break; i++当 i = 1, i < 2 满足条件,j = 0, j < 3 满足条件 输出:m[1][0] 最终输出:4; j++j = 1, j < 3 满足条件 输出:m[1][1] 最终输出:5; j++j = 2, j < 3 满足条件 输出:m[1][2] 最终输出:6; j++            j = 3, j < 3 不满足条件,跳出循环 break; i++当 i = 2, i < 2 不满足条件,跳出外层循环 break; 结束Over !*/}}2:/*多维数组: 当数组元素的类型是数组时就成了多维数*/
public class ArrayTest03{public static void main(String[] args){int[][] a = new int[][]{{1,2,3},{5,6,7},{7,8,9}};m(a);        }// 遍历public static void m(int[][] a){for(int i = 0; i < a.length; i++){for(int j = 0; j < a[i].length; j++){System.out.println(a[i][j]);}System.out.print("\n");}        }}

/*冒泡排序算法:int 类型的数组 : 3 1 6 2 5*/
public class BubbleSort{public static void main(String[] args){int[] a = {3,1,6,2,5};//System.out.println("数组的长度:"+a.length);
        m(a);/*// 开始排序for(int i = a.length-1; i > 0; i--){for(int j = 0; j < i; j++){if(a[j] > a[j+1]){// 交换位置int temp;temp = a[j];a[j] = a[j+1];a[j+1] = temp;}    }}// 遍历for(int i = 0; i < a.length; i++){System.out.println(a[i]);    }*/}public static void m(int[] a){for(int i = a.length-1; i > 0; i--){for(int j = 0; j < i; j++){if(a[j] > a[j+1]){// 交换位置int temp;temp = a[j];a[j] = a[j+1];a[j+1] = temp;}    }}// 遍历for(int i = 0; i < a.length; i++){System.out.println(a[i]);    }}}

转载于:https://www.cnblogs.com/Deng1185246160/p/4232279.html

第二十一节(数组概要, 一维、二维数组的声明和使用,数组的排序,数组的查找,)...相关推荐

  1. php判断几维数组的方法,PHP判断数组是一维二维或几维实例

    PHP判断数组是一维二维或几维实例 导语:php中比较要的一个知识点就是数组了,你对数组的.认识有多少呢?下面的是百分网小编为大家搜集的PHP判断数组是一维二维或几维实例,供大家参考. //可以判断是 ...

  2. php 冒泡排序数组,php一维二维数组键之冒泡排序

    php一维二维数组键之冒泡排序 功能:对数组进行重新排序. 说明:冒泡排序 (一维数组)(二维数组某个健排序) 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据 ...

  3. 【C 语言】数组 ( 一维数组形参退化 | 二维数组形参退化 | 函数形参等价关系 )

    文章目录 一.一维数组形参退化 二.二维数组形参退化 三.数组形参等价关系 一.一维数组形参退化 C 中将 一维数组 作为参数 , 传递到函数中 , 该 一维数组 会退化为 指针 ; 将 int ar ...

  4. 2022. 将一维数组转变成二维数组

    2022. 将一维数组转变成二维数组 给你一个下标从 0 开始的一维整数数组 original 和两个整数 m 和 n .你需要使用 original 中 所有 元素创建一个 m 行 n 列的二维数组 ...

  5. 01背包和完全背包 的完整讲解版 包含 一维数组实现 和二维数组实现题目

    (二)01背包和完全背包 的完整讲解版 包含 一维数组实现 和二维数组实现题目 //有N件物品和一个容量为V的背包.第i件物品的体积是c[i],价值是w[i].求解将哪些物品装入背包可使价值总和最大. ...

  6. C语言一维/二维数组解引用难理解点以及一道难题

    C语言指针相关的坑爹题 先来一点简单的 求下面各代码打印结果(32位环境): int a[3][4] = {0}; printf("%d\n",sizeof(a)); printf ...

  7. 《c primer pius》第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处理一维数组的

    <c primer pius>第十章第6题,编写一个程序,初始化一个二维double数组,并利用练习2中的任一函数来把这个数组复制到另一个二维数组(因为二维数组是数组的数组,所以可以使用处 ...

  8. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  9. 一维数组名与二维数组名的关联

    1.一维数组名与二维数组名的关系之于普通指针与数组指针的关系 2.首先数组名编译器会隐式变换看做指针常量,因此a[i]与a+i是等价的. a+i返回由i指定的行地址,假设元素类型为char,则行指针类 ...

  10. 二维数组:随机生产,遍历,判断两个数组一维二维长度,和内容是否一致

    import java.util.Random;/*** 1,定义第一个方法,传入数组长度,返回一个1维和2维长度都完全相同的数组* 2.定义一个方法,传入两个数二维组,判断两个数组是否完全一致:一维 ...

最新文章

  1. spring mvc异常统一处理(ControllerAdvice注解)
  2. GO语言中json与map的转换
  3. 常见非关系型数据库(NoSQL)推荐介绍
  4. 【Nginx】初探 Nginx 架构
  5. 描述java源程序构成_2.1 Java程序的构成
  6. linux 22.3 终端,Linux系统服务Day.22
  7. c语言求数列的和_例15:C语言求Fibonacci数列的前30个数
  8. COG云原生优化遥感影像,瓦片切分的应用实践
  9. C# winform程序怎么打包成安装项目(图解)
  10. Maven学习总结(39)——Maven私服的搭建及使用deploy命令部署构建问题汇总
  11. sqoop 把 hdfs 和关系型数据库 (mysql等)互导
  12. 安装选择Arduino Leonardo新手入门体验
  13. 1005 继续(3n+1)猜想 (25 分)—PAT (Basic Level) Practice (中文)
  14. linux硬盘格式哪个好,linux使用哪种硬盘分区格式会比较好
  15. 【Spring】13、使用Spring 3的@value简化配置文件的读取
  16. Windows 7下IE 11的F12控制台不能使用的解决
  17. 微博认证:黄v怎么认证?(认证技巧分享)
  18. 千万不要攻击中国网站!传奇美国黑客凯文·米特尼克的警告
  19. Matlab 读取.grd文件
  20. ClickHouse S3 外表调研

热门文章

  1. Java开发面试技巧,Hive-JDBC操作
  2. 全套学习!dockerpull的镜像位置
  3. python【力扣LeetCode算法题库】面试题40- 最小的k个数
  4. Tensorflow【实战Google深度学习框架】使用 HDF5 处理大型数据集with TFLearn
  5. php for windows二进制包,PHP5ForWindowsVC9-x865.4.3安装版
  6. mysql gtid 1236_MYSQL主从搭建GTID报错 error 1236 master has purged binary logs containing GTIDs?...
  7. Layui 弹出text输入框, 多行,
  8. python 微信模块_Python使用itchat模块实现简单的微信控制电脑功能示例
  9. execve系统调用_《操作系统》知识结构
  10. qt linux mac,MacOS下Qt Installer Framework使用教程【个人经验】