Choice:
A. Collection<? extends Writer> c = new CopyOnWriteArraySet<PrintWriter>();
B. Set<? super PrintStream> set = new LinkedHashSet<InputStream>();
C. List<? extends ObjectOutputStream> s = new CopyOnWriteArrayList<FilterOutputStream>();
D. Queue<? extends OutputStream> queue = new SynchronousQueue<PrintStream>();
E. Queue<? super PrintWriter> deque = new ArrayDeque<Writer>();
F. Map<? extends Reader, ? super ObjectOutputStream> map = new TreeMap<BufferedReader, OutputStream>();
G. Map<? extends Reader, ? super OutputStream> c = new ConcurrentHashMap<InputStreamReader, Writer>();
Explain: B is incorrect because PrintStream is a subclass of OutputStream. C is incorrect, FilterOutputStream is not a superclass of ObjectOutputStream. E is correct because ArrayDeque is an implementation of Deque, and Deque extends Queue. G is incorrect because Writer is not a superclass of OutputStream