------- android培训、java培训、期待与您交流! ----------
数组 : 是一种数据结构,用来存储同一类型的集合.简单来说,就是一个存放同种类型的容器。
使用数据的好处 : 数组可将其中的没一个值自动添加对象的编号,没一个值为一个元素,元素从0开始编号,方便对每个元素的管理
课后思维拓展以及资料查阅:
在结合当中,ArrayList其低层也是使用数组作为容器的.当其将要超过容器大小时,会使用System.copy方法将原有的数据拷贝到一份扩大数倍(1.5倍)的的数组里.同时,其长度有有个length的属性记录其的真实大小.
格式:
数据元素类型[] 变量名 = new 元素类型[参数]; 说明:参数表示数组中元素的个数.
如:int[] a = new int[10];
数组中的常见操作: 获取数组中的元素(通常会用到遍历)
数组中用到数组名.length来获取数组中元素个数
给定一个数组{5,1,6,4,2,8,9}
获取max,min
思路:1.获取最只需要比较,每一次比较都会有一个较大的值,因为该值不确定。通过一个变量进行存储。
2.让数组中每一个元素都和这个变量中的值进行比较。如果大于变量中的值,就用该变量记录较大值。
3.当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值。
public static int getMax(int[] arr) { int max =arr[0]; for(int x=1;x<arr.length;x++) { if(arr[x]>max) max=arr[x]; return max; } } public static void main(String[] args) { int[] arr={5,1,6,4,2,8,9}; int max=getMax(arr); System.out.println("max="+max); }
思考:当学习到集合后,将会有Collections提供获取最大值
public class MytestMax { public static void main(String[] args) { Integer[] arr={5,1,6,4,2,8,9}; Integer max = Collections.max(Arrays.asList(arr)); System.out.println("最大值为:"+max); } }
同时也可以:
数据元素类型[] 变量名 = new 元素类型[]{元素1,元素2....}
如 int[] a = new int[10]{0,1,2,3,4,5,6,7,8,9};
数组的赋值:
1.数组的初始化:
第一种是隐式初始化,每个元素的值都为相应的各类型的初始值,具体看数据类型的总结.
第二种是显示初始化,每个元素都已经被赋予初值.
2.还可以定义匿名数组
new int[]{3,5,6,9,0};
3.同事也可以将一个数组变量引用另一个数组变量
String[] a = new String[10]; String[] b = a;
多维数组:也称数组中的数组
格式:
int[][] arr = new int[2][3];
定义了一个名为arr的数组,数组中有2个一维数组,每个一维数组中含3个元素.
注意:java数组一旦初始化完成,该数组长度不可改变
排序:
选择排序:选择一个位置和其他位置比较
特点:内循环结束一次,最值出现头角标的位置。两个for 循环一个if语句。换值时用第三方变量
冒泡排序:相邻的两个元素进行比较如果符合条件换位。
第一圈:最值出现在最后位。
中间的for循环为for(int y=0;y<arr.length-x-1;y++)//-x:让每一次比较的元素减少。-1:避免角标越界
Arrays.sort(arr);//JAVA中定义的一种排序方式,开发中用它。
查找:遍历中判断
折半查找:提高效率,必须保证该数组是有序的。
角标
min=0;
max=arr.length-1;
mid=(min+max)/2;
查表法:将所有元素临时存储起来,建立对应关系。
------------- android培训、java培训、java博客、java学习型技术博客、期待与您交流! -------------
详情请查看:http://edu.csdn.net/heima/
相关推荐
黑马程序员_hibernate框架开发2016版讲义和笔记资料_day02
黑马程序员_hibernate框架开发2016版讲义和笔记资料_day1_day2_day3_day4 包含4天的教学文档
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员__移动商城项目实战 包括黑马程序员乐淘商城实战和慕课React+Antd
马程序员_黎活明__Spring如何装配各种集合类型的属性.ppt )
黑马程序员_超全面的JavaWeb教程-视频+源码笔记
黑马程序员_iOS基础视频_最适合初学者入门video,百度云链接。
黑马程序员_8天快速掌握Android视频PPT
黑马程序员_android实例教程,网上找的的安卓教材,真心不错。
黑马程序员_javaWEB讲义和笔记资料_day08 传智播客_javaWEB讲义和笔记资料_day08
黑马程序员_Java基础辅导班教程课件[第01期]第15天
传智播客_javaWEB讲义和笔记资料_day09 黑马程序员_javaWEB教程讲义和笔记资料_day09
黑马程序员_JDBC视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载
黑马程序员_struts2框架2016版视频_struts2_day01笔记
黑马程序员_Java基础辅导班教程课件[第01期]第12天
黑马程序员_毕向东_Java基础视频教程第22天-06-GUI(Action事件).zip
黑马程序员_Java基础辅导班教程课件[第01期]第11天
黑马程序员_Java基础辅导班教程课件[第01期]第8天
黑马程序员_2小时教你写一个安卓程序[第01天]课件源码
黑马程序员_2小时教你写一个android程序[第06天]课件源码