
- Hazelcast 教程
- Hazelcast - 首頁
- Hazelcast - 簡介
- Hazelcast - 設定
- Hazelcast - 第一個應用程式
- Hazelcast - 配置
- 設定多節點例項
- Hazelcast - 資料結構
- Hazelcast - 客戶端
- Hazelcast - 序列化
- Hazelcast 高階
- Hazelcast - Spring 整合
- Hazelcast - 監控
- Map Reduce & 聚合
- Hazelcast - 集合監聽器
- 常見問題 & 效能技巧
- Hazelcast 有用資源
- Hazelcast - 快速指南
- Hazelcast - 有用資源
- Hazelcast - 討論
Hazelcast - ISet
java.util.Set 提供了一個介面,用於儲存唯一物件的集合。元素的順序無關緊要。
類似地,ISet 實現的是 Java Set 的分散式版本。它提供類似的功能:add、forEach 等。
關於 ISet 需要注意的一點是,與其他集合資料不同,它沒有分割槽。所有資料都儲存/存在於單個 JVM 上。所有 JVM 仍然可以訪問資料,但該集合無法擴充套件到單個機器/JVM 之外。
該集合支援同步備份和非同步備份。同步備份確保即使儲存集合的 JVM 宕機,所有元素都將被保留並可從備份中獲取。
讓我們來看一個有用函式的示例。
新增元素和讀取元素
讓我們在兩個 JVM 上執行以下程式碼。一個 JVM 上執行生產者程式碼,另一個 JVM 上執行消費者程式碼。
示例
第一部分是生產者程式碼,它建立一個集合並向其中新增專案。
public static void main(String... args) throws IOException, InterruptedException { //initialize hazelcast instance HazelcastInstance hazelcast = Hazelcast.newHazelcastInstance(); // create a set ISet<String> hzFruits = hazelcast.getSet("fruits"); hzFruits.add("Mango"); hzFruits.add("Apple"); hzFruits.add("Banana"); // adding an existing fruit System.out.println(hzFruits.add("Apple")); System.out.println("Size of set:" + hzFruits.size()); System.exit(0); }
第二部分是消費者程式碼,它讀取集合元素。
public static void main(String... args) throws IOException, InterruptedException { //initialize hazelcast instance HazelcastInstance hazelcast = Hazelcast.newHazelcastInstance(); // create a set ISet<String> hzFruits = hazelcast.getSet("fruits"); Thread.sleep(2000); hzFruits.forEach(System.out::println); System.exit(0); }
輸出
生產者程式碼的輸出顯示它無法新增現有元素。
false 3
消費者程式碼的輸出列印集合大小和水果,順序可能不同。
3 Banana Mango Apple
有用方法
序號 | 函式名稱 & 描述 |
---|---|
1 | add(Type element) 如果元素不存在,則將其新增到集合中 |
2 | remove(Type element) 從集合中移除元素 |
3 | size() 返回集合中元素的數量 |
4 | contains(Type element) 返回元素是否存在 |
5 | getPartitionKey() 返回儲存集合的分割槽鍵 |
6 | addItemListener(ItemListener<Type>listener, value) 通知訂閱者集合中元素被移除/新增/修改。 |
hazelcast_data_structures.htm
廣告