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()
将员工移除。