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);
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);
相关文章推荐
- java 数组的相关操作
- Java基本功练习五(一维数组相关操作[声明、创建、乱序、排序、查找]和方法的重载举例[浅议])
- Java学习,数组的相关操作,封装类,Class类,反射API
- Java有序数组的相关操作
- java程序设计--孙鑫java无难事Lesson6《数组相关操作、几个特殊的类、设计模式》
- java对tar、zip包的相关操作
- Android JNI开发高级篇有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。 一、类的相关操作 1. jclass FindClass(JNIEnv *env, const char *name);
- Java学习笔记2 - 数组的基本操作
- Java中对Array数组的常用操作
- 黑马程序员_java基础(数组的操作)
- [Java 11] ArraysDemo 数组简单的排序,填充操作
- Scala学习笔记-数组相关操作
- Java数组常用操作
- java中Arrays类对数组的操作
- 黑马程序员--读写字节数组,随机读写流,集合IO的思维导图,多线程部分,单例设计模式,线程和进程的概念,Java中的线程的创建方式,线程的随机性,线程的状态图,多线程操作共享数据的安全性,死锁
- ES通过脚本获取数组对象,以及Kibana相关操作
- 尚硅谷第四课0722班 java-特殊流程控制 -数组元素的默认初始化-数组操作常见问题-Java内存的结构
- Scala坑三(数组相关操作)
- Scala坑三(数组相关操作)
- JAVA中File的相关操作