Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1443106
  • 博文数量: 3500
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 43870
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-03 20:31
文章分类

全部博文(3500)

文章存档

2008年(3500)

我的朋友

分类:

2008-05-04 19:01:17

一起学习
1.关于数组的特点 1)在Java中,无论使用数组或容器,都有边界检查。如果越界操作就会得到一个RuntimeException异常。 2)数组只能保存特定类型。数组可以保存基本类型,容器则不能。容器不以具体的类型来处理对象,它们将所有对象都按Object类型处理。 3)容器类只能保存对象的引用。而数组既可以创建为直接保存基本类型,也可以保存对象的引用。在容器中可以使用包装类,如Integer、Double等来实现保存基本数据类型值。 4)对象数组和基本类型数组在使用上几乎是相同的;唯一的区别是对象数组保存的是引用,基本类型数组保存基本类型的值。 2.关于数组定义 1)数组在定义时,不能分配空间。只有定义完后,可以给数组分配空间。 int num[]; num=new int[3]; 或 int num[]=new int[3]; 注意 int [] num=new int[]{1,2,3}; //ok int [] num=new int[3]{1,2,3}; //error; 2)可以这样定义二维数组。 int [][] num; //or num=new int[3][]; num[0]=new int[5]; num[1]=new int[3]; num[2]=new int[2]; 3)二维数组赋初值。 int [][] num=new int[][]{1,2,3,4,5,5}; //error int [][] num=new int[][]{{1,2,3},{4,5,5}}; //ok int [][] num=new int[2][]{{1,2,3},{4,5,5}}; //error int [][] num={{1,2,3},{4,5,6}}; //ok 3.关于数组初始化 对象数组在创建之初会自动初始化成null,由原始数据类型构成的数组会自动初始化成零(针对数值类型),(Char)0 (针对字符类型)或者false (针对布尔类型)。 4.数组有关引用的问题 int[] a1 = { 1, 2, 3, 4, 5 }; int[] a2; a2 = a1;//这里只是复制了一个引用 看以下代码: public class Arrays { public static void main(String[] args) { int[] a1 = { 1, 2, 3, 4, 5 }; for (int i = 0; i < a1.length; i ) System.out.println("a1[" i "] = " a1[i]); int[] a2; a2 = a1; for (int i = 0; i < a2.length; i ) a2[i] ; System.out.println("-----after change a2------"); for (int i = 0; i < a1.length; i ) System.out.println("a1[" i "] = " a1[i]); System.out.println("-----after change a2[0]------"); a2[0] = 333; System.out.println("a2[0]=" a2[0]); System.out.println("a1[0]=" a1[0]); System.out.println("----- a2------"); for (int i = 0; i < a2.length; i ) System.out.println("a2[" i "] = " a2[i]); } } 结果: a1[0] = 1 a1[1] = 2 a1[2] = 3 a1[3] = 4 a1[4] = 5 -----after change a2------ a1[0] = 2 a1[1] = 3 a1[2] = 4 a1[3] = 5 a1[4] = 6 -----after change a2[0]------ a2[0]=333 a1[0]=333 ----- a2------ a2[0] = 333 a2[1] = 3 a2[2] = 4 a2[3] = 5 a2[4] = 6 数组a1和a2始终在操作同一个对象。 5.关于数组的相关操作 1)在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。 2)数组的复制:System.arraycopy()。 3)数组的排序:Arrays.sort()。 4)在已排序的数组中查找某个元素:Arrays.binarySearch()。 6.关于数组的排序操作 1)对象数组排序,必须实现Comparable接口。 import java.util.Arrays; class Student implements Comparable { int num; String name; Student(int num, String name) { this.num = num; this.name = name; } public String toString()// 重写toString()方法,以便main:System.out.println(ss[i]); { return "number=" num "," "name=" name; } public int compareTo(Object o) { Student s = (Student) o; return num > s.num ? 1 : (num == s.num ? 0 : -1); } } class ArrayTest { public static void main(String[] args) { Student[] ss = new Student[] { new Student(1, "zhangsan"), new Student(2, "lisi"), new Student(3, "wangwu") }; Arrays.sort(ss); for (int i = 0; i < ss.length; i ) { System.out.println(ss[i]); } } } 结果: number=1,name=zhangsan number=2,name=lisi number=3,name=wangwu 2)以num为第一关键字,name为第二关键字排序 import java.util.Arrays; class Student implements Comparable { int num; String name; Student(int num, String name) { this.num = num; this.name = name; } public String toString() { return "number=" num "," "name=" name; } public int compareTo(Object o) { Student s = (Student) o; int result = num > s.num ? 1 : (num == s.num ? 0 : -1); if (0 == result) { result = name.compareTo(s.name); } return result; } } class ArrayTest { public static void main(String[] args) { Student[] ss = new Student[] { new Student(1, "zhangsan"), new Student(2, "lisi"), new Student(3, "wangwu"), new Student(3, "mybole") }; Arrays.sort(ss); for (int i = 0; i < ss.length; i ) { System.out.println(ss[i]); } } } 结果: number=1,name=zhangsan number=2,name=lisi number=3,name=mybole number=3,name=wangwu 7.关于java.util.Arrays 1)java.util.Class Arrays’s architecture java.lang.Object | --java.util.Arrays 2)说明 这个类提供的基本上都是静态方法,用户进行数组操作,binarySearch():数组中特定元素的寻找,equals():比较两个数组是否相等(在相同位置上的元素是否相等),fill():数组填充,sort():数组排序 下载本文示例代码


新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧新手入门:Java数组特点及基本使用技巧
阅读(162) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~