toArray()与toArray(T [] a)的区别「建议收藏」

toArray()与toArray(T [] a)的区别「建议收藏」1、Object[]toArray()原理:将集合转换为Object类型的数组并返回该数组(以首地址的形式)。 调用格式:Object[]a=collecton.toArray() 注意:(1)前面类型必须为Object[]且不能被强制转换。(2)需要在遍历Objecta[]时,再强制转换a[n]的类型。由于编译器在语法上无法检测到类型错误,容易

大家好,又见面了,我是你们的朋友全栈君。

1、Object[] toArray()
原理:将集合转换为Object类型的数组并返回该数组(以首地址的形式)。 

调用格式: Object []a=collecton.toArray() 

注意:(1)前面类型必须为Object[]且不能被强制转换。
           (2)需要在遍历Object a[]时,再强制转换a[n]的类型。由于编译器在语法上无法检测到类型错误,容易出现类型使用不当。

附注:
collection.toArray()是旧式的获得对象数组的方法。

在java5引入泛型之前,这是唯一的获得对象数组的方法。



2、<T> T[] toArray(T[] a)
原理:根据参数数组的类型,构造了一个与向量元素个数相等的空数组。
调用格式: 
(1)String a[] = collection.toArray(new String[0]);//将collection中的内容保存到数组a中。
(2)return collection.toArray(new String[0])//若数组容量太小,将自动重新分配一个数组。
这个方法安全,明确。
(3)String s[] = collection.toArray(new String[collection.size()]);//姑且认为是最好的使用方式。
附注:toArray(T[] a)是Java5 引入泛型模板机制后的新调用方法。区别就是明确了类型。
如果Collection在创建时明确了类型,比如Collection<String>,这里的方法也有了相应的类型。编译器可以检测到类型错误。

代码示例:
public class RandomTeacher {
	private static String[] getRandomteachers(String[] teachers, int n) {
		Vector<String> vName = new Vector<String>();

		for (int i = 0; i < n; i++) {
			while (true) {
				Random random = new Random();

				int index = random.nextInt(teachers.length - 1);
				if (vName.contains(teachers[index]) == false) {
					vName.add(teachers[index]);
					break;
				}
			}
		}
		//1.
//		return vName.toArray(new String[1]);//以空数组作为参数
		
		//2.
//		String [] choosedTeacher = new String[3];//当空间不够用时,toArray(T[] a)会自动分配一个新的数组
//		vName.toArray(choosedTeacher);

		//3.姑且认为是最好的。
		return vName.toArray(new String[vName.size()]);
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String teachers[] = { "张", "赵", "刘", "钱", "孙", "李", "周", "吴", "郑", "王" };
		String[] choosedTeachers = RandomTeacher.getRandomteachers(teachers, 5);
		for (int i = 0; i < choosedTeachers.length; i++)
			System.out.println("teacher " + (i + 1) + " : "+ choosedTeachers[i]);

	}

}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146524.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字符指针赋值[通俗易懂]

    程序1:把两个相同的字符串赋值给两个不同的指针。比较两个指针
    #include
    intmain(void)
    {
    char*a;                          
    printf(“%p/n”,a);
    printf(“%d/n”,sizeof(a));//定义一个指针(一个字节),指针变量里面的值是随机的,所以这个指针也叫悬空指针。
    a=”hello”;                

    2022年4月16日
    58
  • ViewState的用法

    ViewState的用法学习标签:ViewState本文导读:在web窗体控件设置为runat="server",这个控件会被附加一个隐藏的属性_ViewState,_ViewState存放了所有控件

    2022年7月1日
    27
  • HTML中的定位(php跳转到指定网页)

    1、通过地址定位:先页面定位位置:<aname=”name”/>然后通过js地址跳转:location.href=”#name”;或直接点击的html<ahref=”#name”>2、基于H5标准语法跳转先页面定位位置:<aid=”name”/>document.querySelector(“#name”).sc…

    2022年4月14日
    55
  • java pfx_如何在Java中读取.pfx文件的内容?

    java pfx_如何在Java中读取.pfx文件的内容?我有file.pfx文件,还有一个私钥.如何在Java中读取file.pfx中的证书?我用过这段代码:importjava.security.*;importjava.security.cert.Certificate;importjava.security.cert.X509Certificate;importjava.security.cert.CertificateException…

    2022年6月7日
    77
  • 安全工具-Sparta

    安全工具-SpartaSparta是一个集端口扫描、网络扫描、服务探测以及暴力激活成功教程等多项功能于一身的工具,kali中已经预装了该工具,可直接使用。  &gt;输入目标IP,开始扫描即可探测出开放的端口及服务  &gt;选中ssh服务,对其进行暴力激活成功教程  &gt;确认IP地址、端口、扫描服务等,上传用户名-密码字典后Run  &gt;查看扫描log,探测出一个密码被激活成功教程Hydrav8.2(c…

    2025年6月9日
    3
  • 如何制作一个简单的HTML登录页面(附代码)[通俗易懂]

    如何制作一个简单的HTML登录页面(附代码)[通俗易懂]几乎每个网站都会有登录页面,那你知道如何写HTML登录页面吗?这篇文章就和大家分享一个HTML简单登录界面的代码,有一定的参考价值,感兴趣的朋友可以看看。实例:制作一个HTML登录页面,包含邮箱,登录密码,立即注册,忘记密码等,代码如下:HTML部分:<divclass=”dowebok”><divclass=”logo”></div><divclass=”form-item”><inputid=”username”t

    2022年6月13日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号