java培训基础高级03数组_第1页
java培训基础高级03数组_第2页
java培训基础高级03数组_第3页
java培训基础高级03数组_第4页
java培训基础高级03数组_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数组ID:SCSJ001-Java Basic Syntax数组数组的声明数组的初始化2数组基本概念数组是用来存储一组相同数据类型数据的数据结构。数组也是一种引用类型。数组的元素可以是简单类型的数据,也可以是引用类型的数据。数组的定义方式有两种:type arr_name;type arr_name;int a; Date d;float b; 不推荐String c;3一维数组定义在数组定义中,不能指定数组的长度,而需要在数组的创建阶段来指定通过new操作符来创建数组对象,指定数组的大小,给数组元素的存储分配空间int a = new int20;float b = new float10;

2、String c = new String5; 正确:int a;错误:int20 b;4数组的初始化在创建完数组后,可以对数组进行初始化,也就是给数组的各个元素进行赋值。静态初始化动态初始化int a = 1,3,5,7,9,11;String s = “abc”,”123”,”xyz”;int a = new int10;for(int i = 0; i 10; i+)ai = 2 * i + 1;5简单数据类型数组的定义在定义数组的时候,系统会给这个数组分配用于存放这个数组的内存空间.栈堆null0 xa7678765int arr;arr = new int20;arr0000 xa7

3、678765arr0arr1arr196Student stu = new Student20;String name = stu0.getName();/报错.stu0 = new Student(“Lisa”, “Male”, 1, 18);String name1 = stu0.getName();/Lisa引用数据类型数组的定义栈堆null0 xa7678765stunullnullnull0 xa7678765stu0stu1stu19LisaMale118namesexgradeage0 xb76734610 xb76734617数组元素的引用通过数组名和数组索引来引用一个数组中的

4、元素,数组的索引从0开始到数组长度减1。可以使用数组的一个属性length来获得数组的长度。看数组下标超界报什么异常?String s = new String(“abc”), new String(“123”), new String(“xyz”);for(int i = 0; i = s.length; i+) System.out.println(si);8数组的遍历类似于其他语法的foreach遍历:String s = new String(“abc”), new String(“123”), new String(“xyz”);for(String item : s) System

5、.out.println(item);9一维数组的应用练习利用一维数组来进行冒泡排序:对几个无序的数字进行排序,最常用的方法是所谓的冒泡排序法。这种方法每次比较两个相邻的数,将较小的放到前面,较大的放到后面,这样就可以将这些数中的最大的找出来访到最后,然后比较剩下的数,再在这些数中找出最大的来,直到所有的数字按照从小到大的顺序排列可以用一个一维数组来存放这些需要进行排序的数字,然后对这个一维数组进行排序10数组对数组排序上面一维数组的应用中,利用一维数组来进行冒泡排序。但是,在实际应用中,可以不用自己来写算法对数组进行排序。在Arrays类中有一个静态方法sort,可以用这个类的sort方法来

6、对数组进行升序排序(使用的是快速排序法)。int a = 34,23, 67,12, 78,0, 9;Arrays.sort(a);for(int item : a) System.out.print(“%2d ”, item);/结果: 0 9 12 23 34 67 7811数组拷贝可以将一个数组变量拷贝给另一个数组变量,这个时候,这两个数组变量均指向相同的数组。a栈内存1int对象2345678910堆内存b12数组拷贝(con.)如果只是需要将数组的值拷贝到另一个数组,可以使用System的一个静态方法arraycopy(),它有5个参数:from、fromIndex、to、toInd

7、ex、count,它的意思是将数组from中的索引为fromIndex开始的元素,拷贝到数组to中索引为toIndex的位置,拷贝的元素个数为count个13数组拷贝(con.)a1002003004005006007008009001000b1234567891010020030040050034567b拷贝前拷贝后14数组长度变化数组一旦定义长度无法变化,但实际使用中,可能需要变化长度,如何变通解决?final int MAX = 10;float dates = new floatMAX;float tmp = new floatdates.length + 10; System.arr

8、aycopy(dates, 0, tmp, 0, dates.length); dates = tmp;15多维数组Java中支持多维数组,也就是“数组的数组”。多维数组的声明是通过每一维一组方括号的方式来实现的二维数组:int,double等三维数组:float,String等当使用new 来创建多维数组时,不必指定每一维的大小,而只需要指定最左边的维的大小就可以了。16多维数组(con.)在知道数组元素的情况下,可以直接初始化数组,不必调用new来创建数组,这和一维数组的静态初始化类似int a = 1,2,10,2,20,1在引用多维数组的时候,通过指定数组名和各维的索引来引用。17多维

9、数组(con.)除了静态初始化外,多维数组也可以通过数组声明和初始化分开的动态初始化方法来对数组进行初始化int a = new int45;int b = new int3 b0 = new int4;b1 = new int3;b2 = new int5;18数组列表ArrayList在编程中常常会遇到需要动态操纵数组,比如在运行时增加和删除数组元素,而且有时在编译时又不想确定数组大小希望它可以动态伸缩,在java中解决这一问题的方法是使用java.util包中的ArrayList类 ArrayList是List接口的一个可变长数组实现。 19数组列表ArrayListpublic int

10、 size();/返回列表中的元素个数public Object get(int index);/返回指定位置的元素public void set(int index, Object obj);/设置指定位置元素public void add(Object obj);/在列表末尾增加元素public void add(int index, Object obj);/在列表指定位置插入元素public void clear();/删除列表中所有元素public void remove(int index);/删除列表中指定位置元素元素public void contains(Object obj

11、);/判断列表中指定对象是否存在20ArrayList示例(ArrayListExample)public class ArrayListExample public static void main( String args ) ArrayList al = new ArrayList(); / Create a new ArrayListfor( int i=0; i10; i+ ) al.add( new Integer( i ) ); / Add Items to the array list for( int i=0; i al.size(); i+ ) System.out.pri

12、ntln( i + = + al.get( i ) ); al.remove( 5 );al.set( 5, new Integer( 66 ) );for( Iterator i=al.iterator(); i.hasNext(); ) Integer integer = ( Integer )i.next(); System.out.println( integer ); 21小结一维数组的声明和初始化数组元素的引用二维数组的声明和使用22作业完成数组int a = 100,40, 60, 87, 34, 11, 56, 0的快速排序、冒泡排序;采用折半查找的算法,在数组中查询到某个数;在中文环境下,有字符串,将其每个字节的数据相加求和。求矩阵的和:10, 20, 30, 4005, 0, 1, 039, 40, 56, 7834, 90, 1, 118, 29, 30, 40 1, 0, 1, 0 0, 40, 56, 78 7, 90, 1, 1+23作业5.将一个数组中值=0的项去掉,将不为0的值存入一个新的数组,比如:int a=1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5;生成的新数组为:i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论