package org.vertexium.accumulo.iterator.util; import java.util.HashSet; import java.util.Set; public class SetOfStringsEncoder { public static String encodeToString(Set<String> set) { StringBuilder result = new StringBuilder(); for (String s : set) { result.append(encodeLength(s.length())); result.append(s); } return result.toString(); } private static String encodeLength(int length) { return String.format("%08X", length); } public static Set<String> decodeFromString(String str) { Set<String> results = new HashSet<>(); for (int i = 0; i < str.length(); ) { String lengthStr = str.substring(i, i + 8); int length = Integer.parseInt(lengthStr, 16); i += 8; String item = str.substring(i, i + length); i += length; results.add(item); } return results; } }