网站首页 > java教程 正文
数组
1、一维数组
- 数组的作用类型
(1)作用:
—存储相同数据类型的一组数据
—对同类型数据集中存储、管理、便于遍历
(2)要点:
—数组中的所有元素必须属于相同的数据类型
—数组中所有元素在内存中连续存储
(3)特点:
—数组本身也是一种引用类型
—数组名只是引用,指向堆中创建的数组对象,该对象保存一组其它引用或直接值
(4)数组类型
—数组的类型就是数组中存储的数据的类型
- 声明、创建数组
(1)数组的声明
—告诉系统数据类型是什么
—浯法
数据类型[] 数组名;
(2)数组的创建
一为数组分配内存空间:new操作符的使用
(3)声明并创建数组
数据类型[] 数组名=new 数据类型[大小];
(4)数组特点
一数组有一个字段length,表示此数组对象可以存储多少元素即数组长度,length不是实际保存的元素个数。
—"[]"语法是访问数组对象成员的唯一方式。。
一对象数组保存的是引用,基本类型数组直接保存基本类型的值
一新生成的数组对象,其中所有的引用自动初始化为null;基本类型数组成员有各自默认值(数值型自动初始化为0,字符型为(char)0,布尔型为false)。
- 初始化数组
(1)数组的初始化
—为数组中的成员一一赋值。
(2)数组赋值的两种方式
方法1:边声明边赋值(静态初始化)
int[] score={66,77,88};//或 int[] score=new int[]{66,77,88};
方法2:动态地获取(从盘录入)信息并赋值
Scanner input=new Scanner(System.in); for(int i=0;i<3;i++){ score[i]=input.nextlnt(); }
- 常用数组排序算法
(1)冒泡排序法:
工作原理:它是一种筒单的排序算法,它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。重复地进行直到没有再需要交换,直到该数列已经排序完成。
(2)选择排序法:
工作原理:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到排序序列末尾。以此类推,直到所有元素均排序完毕。
(3)插入排序法:
工作原理:它是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位首并插入。从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。
- 常用数组查找算法
(1)线性查找法:
工作原理:它又称之为顺序查找。在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程。
(2)二分查找法:
工作原理:它又称之为折半查找法。将数组中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功:否则利用中间位置记录将数组分成前、后两个子数组,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子数组,否则进一步查找后一子数组。重复以上过程,直到找到或找不到为止。
- Arrays类用
Java的jdk中提供了一个Arrays工具类,此类专门为程序员操作数组提供了很多专有方法,通过方法的调用可以对数组进行赋值、排序、比较、查找元素等功能。
2、二维数组
- 二维数组的声明、创建
—二维数组可以看成以数组为元素的数组
—Java中二维数组的声明和初始化应按照从高维到低维的顺序进行
示例:
int[] arr1=new int[10][];//第二维长度未定 int[] arr2=new int[10][20];//第二维长度确定
虽然这两个数组的创建有区别,但系统为它们分配的堆内存空间大小是一样的
—对于任何类型的二维数组而言,第一维的大小决定了二维数组对象的大小,因为二维数组的成员是数组引用,数组引用本身大小是固定的。
- 初始化二维数组
—静态初始化
int[][] arr={{1,2},{3,4,5},{6,7,8,9}};
—动态初始化
String[][] arrStr; //声明 arrStr=new String[3][]; //创建、分配内存 arrStr[0]=new String[2]; //为高维创建初始化 arrStr[1]=new String[3]; arrStr[2]=new String[4]; arrStr[0][0]=newString("abc00"); //为低维初始化 arrStr[0][1]=newString("abc01"); arrStr[1][0]=newString("abc10); arrStr[1][1]=newString("abc11"); arrStr(1)(2)=newString("abc12");
3、课程总结
- 一维数组
- 二维数组
数组课程到此结束啦,谢谢走过路过的朋友们,觉得有用的话请多多关注哟~
猜你喜欢
- 2024-09-27 Java教程惊喜第五弹:数组(java数组基础知识)
- 2024-09-27 Java数组入门:定义和使用指南(零基础)
- 2024-09-27 Java入门到架构师教程之JavaScript数组和数组操作方法
- 2024-09-27 数组的简单入门(数组的几种方法)
- 2024-09-27 全新Java入门到架构师教程之二维数组及其初始化、遍历方式
- 2024-09-27 Java中Arrays类中的数组操作方法详解
- 2024-09-27 java互联网架构师,教你学java基本的程序设计结构:大数值+数组
- 2024-09-27 什么是数组?java数组(java数组是啥)
- 2024-09-27 Java中数组的常见操作(java中数组的用法)
- 2024-09-27 Java入门教程:什么是数组?如何掌握数组?
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)