java 中关于toArray()方法的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中关于toArray()方法的问题相关的知识,希望对你有一定的参考价值。

public class TestCollection
public static void main(String[] args)
String str1="apple";
String str2="pear";
String str3="oranges";
String str4="banana";
Collection<String> list=new ArrayList<String>();
list.add(str1);
list.add(str2);
list.add(str3);
list.add(str4);
Object[] strs2=list.toArray();

System.out.println(Arrays.asList(strs2));


代码如上:
在这个代码中,我对toArray()方法不是很理解。书上说:(1)toArray()方法用来获得一个包含所有的对象的指定类型的数组(什么叫包含所有的对象的指定类型的数组)。(2)toArray()方法的入口参数(什么是入口参数)必须为数组类型的实例(什么叫必须为数组类型的实例)。并且必须已经被实例化(为什么),他的作用是用来指定欲获得数组的类型。我对这两句话不是很理解,能不能解释一下。
还有 Object[] strs2=list.toArray();这句话是什么作用,为什么要创建一个Object的引用变量。

包含所有的对象就是list中的所有对象(ste1、2、3、4),指定类型就是list中的那些对象的类型,这里是String。入口参数就是要给与你调用的方法的变量,例如: System.out.println(Arrays.asList(strs2)); “ Arrays.asList(strs2)”是 System.out.println()这个方法的入口参数。数组类型的实例,例如Object[] strs2=list.toArray(); 这个strs就是一个数组类型的实例,就是你要用数组类型的实例给与toArrays()给这个方法。 参考技术A 我们知道List集合是一个容器,中存储的是Object类型的数据(引用),如果想转成数组,那么List中存储的数据类型必须一致,是同一类型的才可以;toArray()之所以返回Object数组也是这个原因。

一个Java中关于Comparable和comparator的问题

请问在java中comparable和comparator的关系是不是就是类似于iterable和iterator的关系啊?comparable这个接口下有哪些方法啊?comparator这个方法又是用来干什么的呢?

comparable接口只有一个方法:int compareTo(T o)(位于java.lang包下),主要作用是比较两个对象的大小。而
Comparator<T>接口位于java.util包下,他有两个方法: int compare(T o1, T o2) 和boolean equals(Object obj) ,它的作用主要是用在集合的排序中(指定排序规则),强行对某个对象 collection 进行整体排序 的比较函数,也可用在Arrays的sort(Comparator c)方法中。
参考技术A Comparable与Comparator的区别:
http://hi.baidu.com/halu126/item/3d4e3901bfb2a1f0a0103420

Iterator和Iterable的区别:

http://hi.baidu.com/halu126/item/14d20ca8a7300b268919d3b4

以上是关于java 中关于toArray()方法的问题的主要内容,如果未能解决你的问题,请参考以下文章

一个Java中关于Comparable和comparator的问题

Java中关于equals()和hashCode()的问题

java中关于bufferedreader类中read方法

求教大神,java中关于String类的getBytes()方法的问题

java中关于Pattern的一个方法

java中关于FileReader的read方法!!