热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中TreeSettoArray(T[])方法,示例

Java中TreeSettoArray(T[])方法,示例

Java 中 TreeSet toArray(T[])方法,示例

原文:https://www . geesforgeks . org/treeset-to arrayt-method-in-Java-with-example/

Java 中 TreeSet 类toArray(T[]) 方法方法用于形成与 TreeSet 相同元素的数组。它以正确的顺序返回一个包含该树集中所有元素的数组返回数组的运行时类型是指定数组的运行时类型。如果 TreeSet 适合指定的数组,它将在其中返回。否则,将使用指定数组的运行时类型和此 TreeSet 的大小分配一个新数组。
如果 TreeSet 适合有空余空间的指定数组(即数组中的元素比 TreeSet 多),则紧接着 TreeSet 末尾的数组中的元素被设置为空。(只有当调用者知道树集合不包含任何空元素时,这在确定树集合的长度时才有用。)

语法:

public <T> T[] toArray(T[] a)

参数:该方法接受一个参数 arr[] ,如果树集合的元素足够大,则该参数是要存储到其中的数组;否则,将为此目的分配一个相同运行时类型的新数组。

返回值:该方法返回一个包含类似于 TreeSet 元素的数组。

异常:该方法可能会引发两种类型的异常:


  • arraystorexception:当提到的数组属于不同类型,无法与 TreeSet 中提到的元素进行比较时。

  • NullPointerException :如果数组为 Null,那么抛出这个异常。

下面的程序说明了 TreeSet.toArray(arr[])方法的工作原理。

程序 1: 当数组有树集大小时

// Java code to illustrate toArray(arr[])
import java.util.*;
public class TreeSetDemo {
    public static void main(String args[])
    {
        // Creating an empty TreeSet
        TreeSet<String>
            set = new TreeSet<String>();
        // Use add() method to add
        // elements into the TreeSet
        set.add("Welcome");
        set.add("To");
        set.add("Geeks");
        set.add("For");
        set.add("Geeks");
        // Displaying the TreeSet
        System.out.println("The TreeSet: "
                           + set);
        // Creating the array and using toArray()
        String[] arr = new String[5];
        arr = set.toArray(arr);
        // Displaying arr
        System.out.println("The arr[] is:");
        for (int j = 0; j < arr.length; j++)
            System.out.println(arr[j]);
    }
}

Output:

The TreeSet: [For, Geeks, To, Welcome]
The arr[] is:
For
Geeks
To
Welcome
null

程序 2: 当数组小于树集的大小时

// Java code to illustrate toArray(arr[])
import java.util.*;
public class TreeSetDemo {
    public static void main(String args[])
    {
        // Creating an empty TreeSet
        TreeSet<String>
            set = new TreeSet<String>();
        // Use add() method to add
        // elements into the TreeSet
        set.add("Welcome");
        set.add("To");
        set.add("Geeks");
        set.add("For");
        set.add("Geeks");
        // Displaying the TreeSet
        System.out.println("The TreeSet: "
                           + set);
        // Creating the array and using toArray()
        String[] arr = new String[1];
        arr = set.toArray(arr);
        // Displaying arr
        System.out.println("The arr[] is:");
        for (int j = 0; j < arr.length; j++)
            System.out.println(arr[j]);
    }
}

Output:

The TreeSet: [For, Geeks, To, Welcome]
The arr[] is:
For
Geeks
To
Welcome

程序 3: 当数组大于树集的大小时

// Java code to illustrate toArray(arr[])
import java.util.*;
public class TreeSetDemo {
    public static void main(String args[])
    {
        // Creating an empty TreeSet
        TreeSet<String>
            set = new TreeSet<String>();
        // Use add() method to add
        // elements into the TreeSet
        set.add("Welcome");
        set.add("To");
        set.add("Geeks");
        set.add("For");
        set.add("Geeks");
        // Displaying the TreeSet
        System.out.println("The TreeSet: "
                           + set);
        // Creating the array and using toArray()
        String[] arr = new String[10];
        arr = set.toArray(arr);
        // Displaying arr
        System.out.println("The arr[] is:");
        for (int j = 0; j < arr.length; j++)
            System.out.println(arr[j]);
    }
}

Output:

The TreeSet: [For, Geeks, To, Welcome]
The arr[] is:
For
Geeks
To
Welcome
null
null
null
null
null
null

程序 4: 演示空指针异常

// Java code to illustrate toArray(arr[])
import java.util.*;
public class TreeSetDemo {
    public static void main(String args[])
    {
        // Creating an empty TreeSet
        TreeSet<String>
            set = new TreeSet<String>();
        // Use add() method to add
        // elements into the TreeSet
        set.add("Welcome");
        set.add("To");
        set.add("Geeks");
        set.add("For");
        set.add("Geeks");
        // Displaying the TreeSet
        System.out.println("The TreeSet: "
                           + set);
        try {
            // Creating the array
            String[] arr = null;
            // using toArray()
            // Since arr is null
            // Hence exception will be thrown
            arr = set.toArray(arr);
            // Displaying arr
            System.out.println("The arr[] is:");
            for (int j = 0; j < arr.length; j++)
                System.out.println(arr[j]);
        }
        catch (Exception e) {
            System.out.println("Exception: " + e);
        }
    }
}

Output:

The TreeSet: [For, Geeks, To, Welcome]
Exception: java.lang.NullPointerException


推荐阅读
  • 深入理解Java泛型:JDK 5的新特性
    本文详细介绍了Java泛型的概念及其在JDK 5中的应用,通过具体代码示例解释了泛型的引入、作用和优势。同时,探讨了泛型类、泛型方法和泛型接口的实现,并深入讲解了通配符的使用。 ... [详细]
  • Java 中 Writer flush()方法,示例 ... [详细]
  • Java 中的 BigDecimal pow()方法,示例 ... [详细]
  • Java 类成员初始化顺序与数组创建
    本文探讨了Java中类成员的初始化顺序、静态引入、可变参数以及finalize方法的应用。通过具体的代码示例,详细解释了这些概念及其在实际编程中的使用。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本题涉及一棵由N个节点组成的树(共有N-1条边),初始时所有节点均为白色。题目要求处理两种操作:一是改变某个节点的颜色(从白变黑或从黑变白);二是查询从根节点到指定节点路径上的第一个黑色节点,若无则输出-1。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 本文详细探讨了KMP算法中next数组的构建及其应用,重点分析了未改良和改良后的next数组在字符串匹配中的作用。通过具体实例和代码实现,帮助读者更好地理解KMP算法的核心原理。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • Explore how Matterverse is redefining the metaverse experience, creating immersive and meaningful virtual environments that foster genuine connections and economic opportunities. ... [详细]
author-avatar
李小白无悔
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有