Java 教程是为 JDK 8 编写的。本页中描述的示例和实践未利用在后续版本中引入的改进。
Collection,因此位于其自己的树的顶部。这个接口的名称是什么? Map<E> 语法声明,该语法告诉你它是泛型的。声明 Collection 实例时,指定它将包含的对象类型有什么好处? Set
Collection
List
Queue
Map
Deque
List 的元素。
for 语句或迭代器迭代 List。
import java.util.*;
public class Ran {
public static void main(String[] args) {
// Get and shuffle the list of arguments
List<String> argList = Arrays.asList(args);
Collections.shuffle(argList);
// Print out the elements using JDK 8 Streams
argList.stream()
.forEach(e->System.out.format("%s ",e));
// Print out the elements using for-each
for (String arg: argList) {
System.out.format("%s ", arg);
}
System.out.println();
}
}
FindDups 示例并将其修改为使用 SortedSet 而不是 Set。指定 Comparator,以便在排序和标识集合元素时忽略大小写。
import java.util.*;
public class FindDups {
public static void main(String[] args) {
Set<String> s = new HashSet<String>();
for (String a : args)
s.add(a);
System.out.println(s.size() + " distinct words: " + s);
}
}
List<String> 并将 String.trim 应用于每个元素。
for 语句不允许你修改 List。使用 Iterator 类的实例可以删除元素,但不能替换现有元素或添加新元素。这留下了 ListIterator:
import java.util.*;
public class ListTrim {
static void listTrim(List<String> strings) {
for (ListIterator<String> lit = strings.listIterator(); lit.hasNext(); ) {
lit.set(lit.next().trim());
}
}
public static void main(String[] args) {
List<String> l = Arrays.asList(" red ", " white ", " blue ");
listTrim(l);
for (String s : l) {
System.out.format("\"%s\"%n", s);
}
}
}
Set,List,Queue 和 Map。对于以下四个分配中的每一个,指定四个核心接口中哪一个最适合,并解释如何使用它来实现分配。 List。通过选择 0 和 size()-1 之间的数字来选择随机员工。Set。实现此接口的集合不允许多次输入相同的元素。Map,其中键是名字,每个值是具有该名字的员工数量。Queue。调用 add() 将员工添加到等待列表,然后 remove() 移除它们。