import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SomeProgram {
public static void main(String[] args) {
Map<String, String> map = new TreeMap<String, String>();
map.put("a1", "qwe");
map.put("a2", "rty");
map.put("a3", "qwe");
map.put("a4", "uio");
map.put("a5", "pas");
map.put("a6", "pas");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
PrintStream ps = new PrintStream(baos);
PrintStream old = System.out;
System.setOut(ps);
Set<String> set1 = new HashSet<String>();
Set<String> set2 = new HashSet<String>();
for (Map.Entry<String, String> entry : map.entrySet()) {
if (!set1.add(entry.getValue())) {
set2.add(entry.getValue());
}
System.out.print("key=" + entry.getKey() + ", value="
+ entry.getValue() + "\r\n");
}
ps.flush();
System.setOut(old);
String source = new String(baos.toByteArray());
String[] strs = set2.toArray(new String[set2.size()]);
for (String s : strs)
fetchSameKeyValuePair(source, s);
}
private static void fetchSameKeyValuePair(String source, String key) {
Pattern p = Pattern.compile("(key=[a-zA-Z0-9]*, value=" + key + ")");
Matcher m = p.matcher(source);
while (m.find()) {
System.out.println(m.group(1));
}
}
}
追问当集合数据量大的时候就没数据了。
追答多大?
追问518KB,就是把集合写成文件的大小
追答把实际文件的内容(十行左右)复制上来看看(截图也行),我帮你想个对策。
不过要等我下班。