Java教程是针对JDK 8编写的。本页面描述的示例和实践不利用后续版本中引入的改进,并可能使用不再可用的技术。
请参阅Java语言变更,了解Java SE 9及后续版本中更新的语言功能的摘要。
请参阅JDK发布说明,了解所有JDK版本的新功能、增强功能以及已删除或不推荐使用的选项的信息。
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) {
// 获取并洗牌参数列表
List<String> argList = Arrays.asList(args);
Collections.shuffle(argList);
// 使用JDK 8流打印出元素
argList.stream()
.forEach(e->System.out.format("%s ",e));
// 使用增强for循环打印出元素
for (String arg: argList) {
System.out.format("%s ", arg);
}
System.out.println();
}
}
FindDups示例,修改使用SortedSet而不是Set。指定一个Comparator,以在排序和识别集合元素时忽略大小写。import java.util.*;
public class FindDups {
static final Comparator<String> IGNORE_CASE_ORDER
= new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
};
public static void main(String[] args) {
SortedSet<String> s = new TreeSet<String>(IGNORE_CASE_ORDER);
for (String a : args) {
s.add(a);
}
System.out.println(s.size() + "个不同的单词:" + 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(" 红色 ", " 白色 ", " 蓝色 ");
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()将员工移除。