private static final Object PRESENT = new Object();
…
public boolean add(E e) {
return map.put(e, PRESENT)==null;
}
List list = ArrayList<>();
….
If (!Collections.binarySearch(list, key)) list.add(key)
String s1 = "drawbridge";
String s2 = "drawbridge";
String s3 = "drawbridge".intern();
String s4 = new String("drawbridge");
String s5 = new String("drawbridge").intern();
if ( s1 == s2 ) System.out.println("s1 and s2 are same"); // 1. true
if ( s1 == s3 ) System.out.println("s1 and s3 are same" ); // 2. true
if ( s1 == s4 ) System.out.println("s1 and s4 are same" ); // 3. false
if ( s1 == s5 ) System.out.println("s1 and s5 are same" ); // 4. true