Java如何模擬JavaScript或Python字典的鍵值對結構?

Java模擬JavaScriptpython字典的鍵值對結構

本文探討如何在Java中模擬JavaScript或python字典的鍵值對結構。 JavaScript和Python字典使用簡潔的字面量表示法,例如:

policy = {     "expiration": "2021-02-02T12:00:00Z",     "datas": [["content-range", 0, 18576000]] };

Java作為靜態類型語言,需要明確聲明數據類型,無法直接使用類似的字面量表示法。 然而,我們可以通過多種方式實現類似的便捷性。

一種方法是使用Java的enum類型結合注解:

import lombok.Data;  import java.util.Date; import java.util.List;  @Data public enum Policy {     INSTANCE("2021-02-02T12:00:00Z", List.of(List.of("content-range", 0, 18576000)));      private final Date expiration;     private final List<List<?>> data; // 使用List<List<?>> 允許內層列表元素類型不同      Policy(Date expiration, List<List<?>> data) {         this.expiration = expiration;         this.data = data;     } }

此代碼利用Lombok的@Data注解自動生成getter和setter方法。Policy枚舉包含expiration和data成員變量,分別對應字典的鍵”expiration”和”datas”。data的類型為List>,以適應內層列表中不同類型元素。 注意,List.of()方法需要Java 9或更高版本。 較低版本需要手動創建List對象。 這種方法適用于數據結構固定且數量有限的情況。

立即學習Java免費學習筆記(深入)”;

對于數據結構不固定或需要頻繁添加/刪除鍵值對的情況,HashMap是更合適的方案:

import java.util.HashMap; import java.util.List; import java.util.Map;  public class PolicyMap {     public static void main(String[] args) {         Map<String, Object> policy = new HashMap<>();         policy.put("expiration", "2021-02-02T12:00:00Z");         policy.put("datas", List.of(List.of("content-range", 0, 18576000)));          System.out.println(policy);     } }

HashMap允許動態添加鍵值對,鍵為字符串,值可以是任何對象類型。 這提供了更大的靈活性,更接近JavaScript或Python字典的動態特性。

Java如何模擬JavaScript或Python字典的鍵值對結構?

選擇哪種方法取決于具體需求。 如果數據結構固定且簡單,enum結合注解可能更簡潔;如果需要靈活性,HashMap是更好的選擇。

以上就是Java如何模擬JavaScript或Python字典的

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享