Choice:
A. Set<? super PrintWriter> c = new HashSet<OutputStreamWriter>();
B. List<? extends Writer> list = new LinkedList<FileWriter>();
C. List<? super FileOutputStream> s = new CopyOnWriteArrayList<FilterOutputStream>();
D. Queue<? extends FilterOutputStream> queue = new ArrayQueue<BufferedOutputStream>();
E. Queue<? super PrintWriter> deque = new ArrayDeque<Writer>();
F. Map<? extends FilterOutputStream, ? super ObjectOutputStream> map = new TreeMap<PrintStream, OutputStream>();
G. Map<? extends Reader, ? super OutputStream> c = new ConcurrentHashMap<InputStreamReader, Writer>();
Explain: A is incorrect because OutputStreamWriter is not superclass of PrintWriter, the PrintWriter's superclass is Writer. C is incorrect because FilterOutputStream is not a superclass of FileOutputStream. D is incorrect because java.util.* don't have a class named ArrayQueue, there is only an ArrayDeque.