Java.util Packages Tutorial

Java.util 包教程

Java - java.util 包

java.util 包是 Java SDK 的標準包。它包含集合框架、遺留集合類、事件模型、日期和時間工具、國際化以及各種實用程式類。此包非常有用,因為它提供了常用的集合,如 ArrayList、HashMap、Set 等。Java.util 提供了用於字串操作的 StringTokenizer 類,以及用於事件模型處理、日期和時間操作等的其它實用程式類。本參考將引導您瞭解 **java.util** 包中提供的簡單易用的方法。

匯入 java.util 包

作為 Java 的內建包,我們不需要下載任何外部庫來使用 **java.util** 包及其所有類,可以使用以下語法匯入:

import java.util.*;

這裡我們使用 * 運算子匯入 java.util 包中的所有類,現在程式中可以使用任何類。如果要匯入特定的類,例如 ArrayList,可以使用以下語法:

import java.util.ArrayList;

為什麼 Java 程式中使用 java.util 包

Java.util 包中的類包含實用程式類,例如集合框架、字串操作實用程式、日期和時間操作實用程式。以下列表顯示了 java.util 包中類的一些類別。

  • 集合 − ArrayList、HashMap、Dictionary 是 java.util 包中大量集合類中的一些類。這些類提供了對大型資料集的常用操作。

  • 日期時間操作 − GregorianCalendar、Timezone 是 java.util 包中一些實用程式類。這些類提供了對日期和時間的常用操作。

  • 字串操作 − StringTokenizer 是 java.util 包中一個重要的實用程式類。此類提供了許多操作來操作字串。

  • 列舉 − java.util 包的 Enumeration 類提供了對值集的操作,例如迭代、比較等。

  • 異常 − java.util 包包含各種常見的異常,例如 ConcurrentModificationException、InputMismatchException 等。

java.util 包中的重要類

以下是 java.util 包中一些重要類的列表:

  • ArrayDeque − 此類提供可調整大小的陣列並實現 Deque 介面。此類及其迭代器實現了 Collection 和 Iterator 介面的所有可選方法。
  • ArrayList − 此類提供可調整大小的陣列並實現 List 介面。ArrayList 類擴充套件 AbstractList 並實現 List 介面。ArrayList 支援可根據需要增長的動態陣列。
  • Arrays − 此類包含一個靜態工廠,允許將陣列視為列表。ArrayList 類包含各種用於運算元組(例如排序和搜尋)的方法。
  • BitSet − 此類建立一個特殊型別的陣列,用於儲存位值。BitSet 陣列可以根據需要增加大小。這使得它類似於位的向量。這是一個遺留類,但在 Java 2 版本 1.4 中已完全重新設計。Java BitSet 類實現一個按需增長的位向量。
  • Calendar − 此類是一個抽象類,提供在特定時間瞬間和一組日曆欄位(如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等)之間轉換的方法,以及操作日曆欄位的方法,例如獲取下週的日期。
  • Collections − 此類僅包含對集合進行操作或返回集合的靜態方法。
  • Currency − 此類表示一種貨幣。Currency 類設計為對於任何給定的貨幣,永遠不會存在多個 Currency 例項,這就是沒有公共建構函式的原因。
  • Date − 此類表示特定時間瞬間,精度為毫秒。
  • Dictionary − 此類是任何類的抽象父類,例如 Hashtable,它將鍵對映到值。
  • EnumMap − 此類是專門用於列舉鍵的 Map 實現。列舉對映中的所有鍵都必須來自建立對映時顯式或隱式指定的一個列舉型別。
  • EnumSet − 此類是專門用於列舉鍵的 Set 實現。列舉集中的所有鍵都必須來自建立集合時顯式或隱式指定的一個列舉型別。
  • Formatter − 此類提供對佈局對齊和調整的支援,數字、字串和日期/時間資料的常用格式以及特定於區域設定的輸出。
  • GregorianCalendar − 此類是 Calendar 的具體子類,提供世界上大多數國家/地區使用的標準日曆系統。它是一個混合日曆,支援儒略曆和格里高利曆系統,並支援單個不連續性,預設情況下對應于格裡高利歷開始使用的格里高利日期。
  • HashMap − 此類是 Map 介面基於雜湊表的實現。
  • HashSet − 此類實現 Set 介面,由雜湊表支援。
  • HashTable − 此類實現雜湊表,它將鍵對映到值。
  • IdentityHashMap − 此類使用雜湊表實現 Map 介面,在比較鍵(和值)時使用引用相等性代替物件相等性。
  • LinkedHashMap − 此類是 Map 介面的雜湊表和連結串列實現,具有可預測的迭代順序。
  • LinkedHashSet − 此類是 Set 介面的雜湊表和連結串列實現,具有可預測的迭代順序。
  • LinkedList − 此類操作執行我們可以對雙向連結串列的預期操作。對列表進行索引的操作將從開頭或結尾遍歷列表,以選擇離指定索引較近的一端。
  • ListResourceBundle − 此類是 ResourceBundle 的抽象子類,它使用方便易用的列表管理區域設定的資源。
  • Locale − 此類物件表示特定的地理、政治或文化區域。
  • Observable − 此類表示可觀察物件,或模型-檢視範例中的“資料”。可以對該類進行子類化以表示應用程式希望觀察的物件。
  • PriorityQueue − 此類是基於優先順序堆的無界優先順序佇列。優先順序佇列的元素根據它們的自然順序或在佇列構造時提供的比較器進行排序,具體取決於使用哪個建構函式。
  • Properties − 此類表示一組持久屬性。屬性可以儲存到流或從流載入。
  • PropertyPermission − 此類是屬性許可權的類。
  • PropertyResourceBundle − 此類是 ResourceBundle 的具體子類,它使用屬性檔案中的靜態字串集管理區域設定的資源。
  • Random − 此類例項用於生成偽隨機數流。該類使用 48 位種子,使用線性同餘公式對其進行修改。
  • ResourceBundle − 此類包含特定於區域設定的物件。此類允許您編寫易於本地化或翻譯成不同語言的程式。
  • ResourceBundle.Control − 此類與用於載入資源包的工廠方法協作。
  • Scanner − 此類是一個簡單的文字掃描器,可以使用正則表示式解析基本型別和字串。
  • ServiceLoader − 此類是一個簡單的服務提供者載入工具。服務載入器始終在呼叫者的安全上下文中執行。受信任的系統程式碼通常應從特權安全上下文中呼叫此類中的方法以及它們返回的迭代器的方法。
  • SimpleTimeZone − 此類是 TimeZone 的具體子類,表示與格里高利曆一起使用的時區。
  • Stack − Stack 是 Vector 的子類,實現標準的後進先出堆疊。Stack 僅定義預設建構函式,它建立一個空堆疊。Stack 包含 Vector 定義的所有方法,並添加了一些它自己的方法。
  • StringTokenizer − 此類允許應用程式將字串分解為標記。此類是一個遺留類,出於相容性原因而保留,儘管在新程式碼中不鼓勵使用它。
  • Timer − 此類為執行緒提供了一種機制,用於安排在後臺執行緒中將來執行的任務。
  • TimerTask − 此類表示可以由 Timer 安排一次性或重複執行的任務。
  • TimeZone − 此類表示時區偏移量,並計算夏令時。
  • TreeMap − 此類是基於紅黑樹的 Map 介面實現。TreeMap 類保證 Map 將按升序排列鍵。
  • TreeSet − 此類實現 Set 介面。TreeSet 類保證 Set 將按升序排列鍵,並由 TreeSet 支援。
  • UUID − 此類表示不可變的通用唯一識別符號 (UUID)。有四種基本的 UUID 型別:基於時間的、DCE 安全的、基於名稱的和隨機生成的 UUID。
  • Vector − Vector 實現動態陣列。Vector 類實現可增長的物件陣列。類似於陣列,它包含可以使用整數索引訪問的元件。

java.util 包的示例

練習以下示例以學習 java.util 包類的概念和用法。

java.util.ArrayList 示例

以下程式說明了 ArrayList 支援的幾種方法 −

package com.tutorialspoint;

import java.util.ArrayList;

public class ArrayListDemo {

   public static void main(String args[]) {
      // create an array list
      ArrayList al = new ArrayList();
      System.out.println("Initial size of al: " + al.size());

      // add elements to the array list
      al.add("C");
      al.add("A");
      al.add("E");
      al.add("B");
      al.add("D");
      al.add("F");
      al.add(1, "A2");
      System.out.println("Size of al after additions: " + al.size());

      // display the array list
      System.out.println("Contents of al: " + al);

      // Remove elements from the array list
      al.remove("F");
      al.remove(2);
      System.out.println("Size of al after deletions: " + al.size());
      System.out.println("Contents of al: " + al);
   }
}

這將產生以下結果 −

輸出

Initial size of al: 0
Size of al after additions: 7
Contents of al: [C, A2, A, E, B, D, F]
Size of al after deletions: 5
Contents of al: [C, A2, E, B, D]

java.util.Date 示例

Java 示例演示了Date 類from() 方法來獲取當前時間的 Date 例項。

package com.tutorialspoint;

import java.time.Instant;

// Import the Date package
import java.util.Date;

// Main public class
public class DateDemo {
   public static void main(String[] args) {

      // create a date of current time
      Date date = Date.from(Instant.now());

      // print the date instance
      System.out.println("Date: " + date.toString());
   }
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果 −

Date: Mon Apr 01 10:20:08 IST 2024

java.util.Random 示例

以下示例顯示了 Java Random doubles() 方法的用法。首先,我們建立了一個 Random 物件,然後使用 doubles() 獲取隨機雙精度值的流並列印第一個值。

package com.tutorialspoint;

import java.util.Random;
import java.util.stream.DoubleStream;

public class RandomDemo {
   public static void main( String args[] ) {

      // create random object
      DoubleStream randomNoStream = new Random().doubles();
      // print a random double value
      randomNoStream.limit(1).forEach( i -> System.out.println(i));
   }    
}

輸出

讓我們編譯並執行上述程式,這將產生以下結果。

0.5129590222446587

何時使用 java.util 包?

每當我們需要操作集合、字串、執行事件處理等時,都可以依賴 java.util 包中提供的實用程式類。本參考為初學者準備,幫助他們理解 Java.util 包中所有方法的基本功能。

前提條件

在開始練習本參考中提供的各種示例之前,我假設您已經瞭解基本的 Java 程式設計。

廣告
© . All rights reserved.