-------?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.当所有的元素都比较完成,那么该变量中存储的就是数组中的最大值。
?
class="java" name="code">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/
?
?
?
?
?
?
?
?