‘壹’ java toarray 怎么用
java中toArray正确用法有三种,toArray方法都需要带参数,分别如下:
12345678910111213141516
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(new String[0]); return newText; } public static String[] vectorToArray3(Vector<String> v) { String[] newText = new String[v.size()]; String[] newStrings = (String[])v.toArray(newText); return newStrings; }
‘贰’ java里面Iterator和toArray有什么区别我看java api的collection里面有这两个方法
你好,你说的这两个方法在该接口中都没有实现。区别很明显,实现该接口并覆写这些方法的类,第一个方法返回的是iterator的对象,第二个方法返回的是一个数组。
‘叁’ java .toArray()什么意思
T[]
toArray(T[]
a)
返回包含此
collection
中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。如果指定的数组能容纳该
collection,则返回包含此
collection
元素的数组。否则,将分配一个具有指定数组的运行时类型和此
collection
大小的新数组。
就是把集合group转变为一个数组,其中元素类型为TagGroup
‘肆’ java中Collection方法里面的Object[] toArray() 和 <T> T[] toArray(T[] a)有什么区别吗
1、Object[] toArray() 是旧式的获得对象数组的方法
调用格式为 Object []a=collecton.toArray() //前面类型必须为Object[]且不能被强制转换
需要在遍历Object a[]时,再强制转换a[n]的类型。由于编译器在语法上无法检测到类型错误,容易出现类型使用不当。
在java5引入泛型之前,这是唯一的获得对象数组的方法
2、<T> T[] toArray(T[] a)是Java5 引入泛型模板机制后的新调用方法。区别就是明确了类型。
如果Collection在创建时明确了类型,比如Collection<String>,
这里的方法也有了相应的类型。编译器可以检测到类型错误。
调用方法:
String a[];
collection.toArray(a);
就将collection的内容存入a数组中。这个方法安全,明确。
‘伍’ 关于java中的toArray()方法动态数组的运用
public class Process {
public String name;
public int a,b,c;
public Process() {
// TODO Auto-generated constructor stub
}
public Process(String name,int a,int b,int c){
this.name=name;
this.a=a;
this.b=b;
this.c=c;
}
public String getname(){
return name;
}
public void setname(String name){
this.name=name;
}
public String toString(){
return this.name+this.a+this.b+this.c;
}
}
import java.util.ArrayList;
import java.util.Arrays;
public class FCFS{
public static void FCFS(ArrayList<Process> list) {
Object []pr=list.toArray();
System.out.println("FCFS的调度结果是:");
for (int i = 0; i < pr.length; i++) {
System.out.print(((Process)pr[i]).getname()+" ");
}
}
public static void main(String[] args) {
ArrayList<Process> list=new ArrayList<Process>();
Process p0 = new Process("A",0,4,2);
Process p1 = new Process("B",1,3,6);
Process p2 = new Process("C",2,5,9);
Process p3 = new Process("D",3,2,4);
Process p4 = new Process("E",4,4,5);
list.add(p0);
list.add(p1);
list.add(p2);
list.add(p3);
list.add(p4);
FCFS(list);
}
}
或者改成:
public class Process {
public String name;
public int a,b,c;
public Process() {
// TODO Auto-generated constructor stub
}
public Process(String name,int a,int b,int c){
this.name=name;
this.a=a;
this.b=b;
this.c=c;
}
public String getname(){
return name;
}
public void setname(String name){
this.name=name;
}
public String toString(){
return this.name+this.a+this.b+this.c;
}
}
import java.util.ArrayList;
import java.util.Arrays;
public class FCFS{
public static void FCFS(ArrayList<Process[]> list) {
Process []p=(Process[])list.get(0);
System.out.println("FCFS的调度结果是:");
for (int i = 0; i < p.length; i++) {
System.out.print(p[i].getname()+" ");
}
}
public static void main(String[] args) {
ArrayList<Process[]> list=new ArrayList<Process[]>();
Process p[] = new Process[5];
p[0] = new Process("A",0,4,2);
p[1] = new Process("B",1,3,6);
p[2] = new Process("C",2,5,9);
p[3] = new Process("D",3,2,4);
p[4] = new Process("E",4,4,5);
list.add(p);
FCFS(list);
}
}
‘陆’ java中ArrayList的toArray()方法 无法进行向下类型转换
(String[])arraylist.toArray();
这种转换方式是不被支持的。
强制转换的直接作用对象是Object类型的,通常只能支持普通的类型对象转化,
String[]包括两层转换,数组、String。多重转换由于sun并没有提出这种转换的转换类型先后顺序,
这个会引起分歧,导致转换失败。例如:你是想先把arraylist.toArray()这个对象转化为String,再把它转化为String[]就会出现不同的转换结果,这就是分歧的产生。
不懂了,还可以继续Hi我。
‘柒’ 关于java中toArray的问题
Object[]
toArray()
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
<T> T[]
toArray(T[] a)
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
‘捌’ java容器中toArray的用法
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());打印的是数组对象的字符串表示形式,不是你说的哈希码