java容器中toArray的用法

来源:百度知道 编辑:UC知道 时间:2024/07/01 01:42:38
请高手帮我看看toArray的用法 其返回的是哈希码 是不是需要重写
import java.util.*;

public class Test1{
public static void main(String[] args){
Name n1 = new Name("f1","l1");
Name n2 = new Name("f2","l2");
Collection c1 = new ArrayList();
c1.add(n1);
c1.add(n2);
c1.add("hello");
c1.add("world");
c1.add(new Integer(100));
int a = c1.size();
System.out.println(a);
System.out.println(c1.contains(n1));

System.out.println(c1);

System.out.println(c1);
Object[] x=c1.toArray(new Object[0]);
for(int i=0;i<x.length;i++){
System.out.println(c1.toArray());
}
Iterator y = c1.iterator();
while(y.hasNext()){
//Name n = (Name)y.next();
System.out.print(y.next()+" ");
}

}
}
class Name{
String firstname,lastname;
Name(Str

toArray()返回包含此 collection 中所有元素的数组。
c1.toArray()返回的是一个Object类型的数组,即Object[]
你的这段代码
for(int i=0;i<x.length;i++){
System.out.println(c1.toArray());
}

System.out.println(c1.toArray());等效于System.out.println(c1.toArray().toString());打印的是数组对象的字符串表示形式,不是你说的哈希码

  java中不带参数的toArray()是不行的,运行时会报ClassCastException;

  java中toArray正确用法有三种,toArray方法都需要带参数,分别如下:

  

public static String[] vectorToArray1(Vector<String> v) {  
    String[] newText = new String[v.size()];  
    v.toArray(newText);  
    return newText;  
}  
  
public static String[] vectorToArray2(Vector<String> v) {  
    String[] newText = (String[])v.toArray(n