docs: public static String[] difference(final String[] list1, final String[] list2) {
          HashSet<String> set = new HashSet<String>();
          HashSet<String> set1 = new HashSet<String>(Arrays.asList(list1));
          HashSet<String> set2 = new HashSet<String>(Arrays.asList(list2));
          for (final String s : list1) {
              if (!set2.contains(s)) {
                  set.add(s);
              }
          }
          for (final String s : list2) {
              if (!set1.contains(s)) {
                  set.add(s);
              }
          }
          return set.toArray(new String[set.size()]);
      }