package ex; import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class PSC_Sample { public void testPSC(List<PSC_Sample> samples) { Set<String> names = new HashSet<String>(); for (PSC_Sample s : samples) { names.add(s.toString()); } } public void testPSCMaps(Map<String, String> input) { Map<String, String> output = new HashMap<String, String>(); for (Map.Entry<String, String> entry : input.entrySet()) { output.put(entry.getKey().intern(), entry.getValue()); } } public void testPSCEnumerated() { Set<String> commonWords = new HashSet<String>(); commonWords.add("a"); commonWords.add("an"); commonWords.add("the"); commonWords.add("by"); commonWords.add("of"); commonWords.add("and"); commonWords.add("or"); commonWords.add("in"); commonWords.add("with"); commonWords.add("my"); commonWords.add("I"); commonWords.add("on"); commonWords.add("over"); commonWords.add("under"); commonWords.add("it"); commonWords.add("they"); commonWords.add("them"); } public List<String> testAddAllToCtor(List<String> l) { List<String> ll = new ArrayList<String>(); ll.addAll(l); ll.add("FooBar"); return ll; } public void fpDontHaveCollectionForSizing(Iterator<Long> it) { Deque<Long> ad = new ArrayDeque<Long>(); while (it.hasNext()) { ad.add(it.next()); } } public void fpConditionalInLoop(Set<String> source) { List<String> dest = new ArrayList<String>(); for (String s : source) { if (s.length() > 0) { dest.add(s); } } } public List<String> fpAddSubCollection(Map<String, Set<String>> s) { List<String> l = new ArrayList<String>(); for (Map.Entry<String, Set<String>> entry : s.entrySet()) { l.add(entry.getKey()); l.addAll(entry.getValue()); } return l; } public void fpSwitchInLoop(Set<Integer> source) { List<Integer> dest = new ArrayList<Integer>(); for (Integer s : source) { switch (s.intValue()) { case 0: dest.add(s); break; case 1: dest.remove(s); break; } } } public void fpAllocationInLoop(Map<String, String> source) { Map<String, List<String>> dest = new HashMap<String, List<String>>(); for (Map.Entry<String, String> entry : source.entrySet()) { List<String> l = new ArrayList<String>(); l.add(entry.getValue()); dest.put(entry.getKey(), l); } } public List<String> fpUnknownSrcSize(BufferedReader br) throws IOException { List<String> l = new ArrayList<String>(); String line; while ((line = br.readLine()) != null) { l.add(line); } return l; } public List<Exception> fpPSCInCatchBlock(List<String> src) { List<Exception> exceptions = new ArrayList<Exception>(); for (String s : src) { try { s = s.substring(1000, 1001); } catch (IndexOutOfBoundsException e) { exceptions.add(e); } } List<Exception> exceptions2 = new ArrayList<Exception>(); for (String s : src) { try { s = s.substring(1000, 1001); if (s == null) return null; } catch (IndexOutOfBoundsException e) { exceptions2.add(e); } } return exceptions; } }