您的位置:首页 > 编程语言 > Java开发

Java中数组的相关操作

2009-07-13 21:16 204 查看
Java中数组的相关操作
1) 在Java中,所有的数组都有一个缺省的属性length,用于获取数组中元素的个数。
2) 数组的复制:System.arraycopy()。
3) 数组的排序:Arrays.sort()。
4) 在已排序的数组中查找某个元素:Arrays.binarySearch()。

数组的复制
对于System.arraycopy可以用来复制一个基本数据类型的数组,也可以复制一个类的对象。如:
int []num1=new int []{2,1,3};
int []num2=new int[3];
System.arraycopy(num1,0,num2,0,num1.length);
Arrays.sort(num2);
复制类的对象:
Student []st1=new Student[]{new Student(1,"zhangshan"),new Student(2,"lisi"),new Student(3,"wangwu"),new Student(3,"qiyuan")};
Student []st2=new Student[4];
System.arraycopy(st1,0,st2,0,st1.length);

数组的排序
对于sort,可以直接对基本数据类型的数组进行排序,但对于一个类的对象,则必须实现Comparable接口中的compareTo(Object o)方法,此方法返回一个int 类型的数,根据前者大于、等于和小于相应的返回正数、0和负数。
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 st=(Student)o;
int result=num>st.num?1:(num==st.num?0:-1);
if(result==0)
{
result=name.compareTo(st.name);
//String类已经实现了Comparable接口,故可以直接调用compareTo方法
}
return result;
}
}
此时可以直接用Arrays.sort(st2);来对st2进行排序。排序的依据是根据Student类的num大小来定,如果num大小相同的,则比较name,再根据name来排序。

数组的查找
int index=Arrays.binarySearch(num2,2);
System.out.println("index="+index);
System.out.println("number="+num2[index]);

index=Arrays.binarySearch(st2,new Student(1,"zhangshan"));
System.out.println("index="+index);
System.out.println("number="+st2[index].num+",name="+st2[index].name);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐