我的java学习路之数组
来源:互联网 发布:百度地图js api 缩放 编辑:程序博客网 时间:2024/06/10 13:40
为什么会有数组,因为在程序执行过程中,经常需要存储大量的数据,这样就需要一个高效的有条理的方法,那就是数组,将相同数据类型的存放在一起。
数组:存储数据的集合
声明数组:元素类型[] 数组引用变量 int[] myList;或者元素类型 数组引用变量[] int myList[];
创建数组:元素类型 数组引用变量 = new 元素类型[数组大小] double[] myList = new double[10];
上面的意思是,创建一个数组变量名叫myList,由10个double类型元素构成
当给数组分配空间时,必须通过指定该数组能够存储元素个数来确定数组大小,所以创建数组后不可再修改大小了,而数组里的元素是通过下标访问,范围是从0到数组长度-1
我们也可以在创建时就初始化数组,如:
double[] myList new double[3];
myList[0] = 1.0;
myList[1] = 2.0;
myList[2] = 3.0;
或者:
double[] myListone = {1.0,2.0,3.0};
数组的查找:(线性查找、二分查找等)
线性查找法 使用for循环挨个遍历一遍
for(int i=0;i<list.length;i++){
System.out.println(i);
}
或使用增强版for循环
for(int i:list){
System.out.println(i);
}
二分查找法 但前提是数组已经排序好了,二分法是每次比较后就排除一半的数组元素,所以大大提高了效率
数组的排序:(选择排序、插入排序、冒泡排序等)
选择排序 假设要按升序排列,那么会在元素中遍历一遍找出最小的放在最前面,然后在元素再找出最小的放在第一个数的后面,以此类推
插入排序 假设排序n个元素,而开始是0带n-1为止,我们认为每插入一个,0-i我们都是排列好的
for(int i = 0;i<list.length-1;i++){
int min = list[i];
int minindex = i;
for(int j = i+1;j<list.length;j++){
if(min > list[j]){
min = list[j];
minindex = j;
}
}
if(minindex != i){
list[minindex] = list[i];
list[i] = min;
}
}
冒泡排序 是将第1个数和第2个数比较,大的数右移,然后比较第2个数和第3个数,大的右移,以此类推,将n个数都比较完算一趟,要比较n-1趟才能将数组排序好
为了满足更大的需求,后面还有二维、三维、多维等数组,简单用现实世界做比较的话,就是一维好比一条线,二维好比一个面有xy轴,三围好比一个立体空间有xyz轴以此类推
,而且再后面很少有用到,所以简单说明一下二维数组
二维数组声明和创建跟一维数组差不多,比如:
int [][] mar = new int[3][];
mar[0] = new int[1];
mar[1] = new int[2];
mar[2] = new int[3];
上面的意思是创建一个二维数组mar,第一维是3,对应的下标0,1,2分别有1,2,3个元素
也可以直接为某个坐标赋值:mar[1][2] = 10;
或者:int [][] mar = {{1},{11,10},{20,21,22}}
- 我的java学习路之数组
- 我的java学习路之数组学习应用demo1猜生日游戏
- [转]我的Java学习之路
- 我的JAVA学习之路
- 我的Java学习之路
- 菜鸟我的JAVA学习之路
- 我的java 学习之路
- 我的java学习之路
- 我的Java学习之路
- 我的java学习之路
- 我的java学习之路 一
- 我的Java学习之路( 一 )
- 我的JAVA 学习之路
- 我的java开始学习之路
- 我的java学习之路
- 我的java学习之路
- 我的JAVA学习之路
- 我的java学习之路
- springMVC-注解开发(上)
- Spring 源码读书笔记
- 关于Segnet训练过程中的几个问题
- linux shell(一)
- Socket通信原理和实践
- 我的java学习路之数组
- 【HDU 3848 CC On The Tree】+ 递归
- 备考PMP第六天
- Android Framework学习(四)之Launcher启动流程解析
- Activity组件之学习笔记
- Game of Life
- react-native- images -crop-picker
- Centos上工具命令及对应安装方式汇总
- 【ICNet】ICNet for Real-Time Semantic Segmentation on High-Resolution Images