package com.hazelcast.examples.iterator; import com.hazelcast.cache.ICache; import com.hazelcast.cache.impl.HazelcastServerCachingProvider; import com.hazelcast.client.HazelcastClient; import com.hazelcast.client.cache.impl.HazelcastClientCachingProvider; import com.hazelcast.client.config.ClientConfig; import com.hazelcast.config.CacheConfig; import com.hazelcast.config.Config; import com.hazelcast.config.JoinConfig; import com.hazelcast.core.Hazelcast; import com.hazelcast.core.HazelcastInstance; import javax.cache.Cache; import javax.cache.CacheManager; import javax.cache.spi.CachingProvider; import java.util.Iterator; /** * Code sample to demonstrate iterator usage on cache. */ public class CacheIteratorUsage { private static boolean isClient = Boolean.getBoolean("com.hazelcast.examples.jcache.iterator.isClient"); public static void main(String[] args) { CachingProvider cachingProvider; if (isClient) { Hazelcast.newHazelcastInstance(createConfig()); HazelcastInstance hazelcastClient = HazelcastClient.newHazelcastClient(createClientConfig()); cachingProvider = HazelcastClientCachingProvider.createCachingProvider(hazelcastClient); } else { HazelcastInstance hazelcastServer = Hazelcast.newHazelcastInstance(createConfig()); cachingProvider = HazelcastServerCachingProvider.createCachingProvider(hazelcastServer); } try { CacheManager cacheManager = cachingProvider.getCacheManager(); CacheConfig cacheConfig = new CacheConfig(); ICache<Integer, String> cache = (ICache<Integer, String>) cacheManager.createCache("myCache", cacheConfig); for (int i = 0; i < 200; i++) { cache.put(i, "Value of " + i); } System.out.println("Iterating over default fetch sized iterator..."); Iterator<Cache.Entry<Integer, String>> iter1 = cache.iterator(); while (iter1.hasNext()) { Cache.Entry<Integer, String> entry = iter1.next(); System.out.println("\t- Key: " + entry.getKey() + ", Value: " + entry.getValue()); } System.out.println("==============================================-"); System.out.println("Iterating over specified (25) fetch sized iterator..."); Iterator<Cache.Entry<Integer, String>> iter2 = cache.iterator(25); while (iter2.hasNext()) { Cache.Entry<Integer, String> entry = iter2.next(); System.out.println("\t- Key: " + entry.getKey() + ", Value: " + entry.getValue()); } } finally { if (cachingProvider != null) { cachingProvider.close(); } if (isClient) { Hazelcast.shutdownAll(); } } } private static Config createConfig() { Config config = new Config(); JoinConfig joinConfig = config.getNetworkConfig().getJoin(); joinConfig.getAwsConfig().setEnabled(false); joinConfig.getMulticastConfig().setEnabled(false); joinConfig.getTcpIpConfig().setEnabled(false); return config; } private static ClientConfig createClientConfig() { ClientConfig clientConfig = new ClientConfig(); clientConfig.getNetworkConfig().addAddress("127.0.0.1"); return clientConfig; } }