day02_Collection、泛型每日作业卷答案 2

preview
需积分: 0 0 下载量 122 浏览量 更新于2022-08-08 收藏 77KB DOCX 举报
集合框架是Java编程语言中一个核心的组件,它提供了数据结构和算法的抽象,使得开发者可以方便地管理和操作数据。在Java中,集合框架主要由两个大类组成:单列集合`java.util.Collection`和双列集合`java.util.Map`。 `Collection`是所有单列集合的父接口,它的主要子接口包括`java.util.List`和`java.util.Set`。`List`接口代表有序的元素集合,其中的元素可以重复,并且通过索引进行访问。`ArrayList`和`LinkedList`是`List`接口的主要实现类,`ArrayList`在内存中以数组形式存储,适用于随机访问,而`LinkedList`则采用链表结构,更适合于插入和删除操作。 `Set`接口则表示无序且不包含重复元素的集合。常见的`Set`实现有`HashSet`和`TreeSet`。`HashSet`基于哈希表,插入和查找速度快,但无特定顺序;`TreeSet`则按照元素的自然排序或自定义比较器进行排序,保证了集合内部的有序性。 在给定的代码中,我们看到两个练习题目: 练习二:这个练习要求统计`Collection`集合中指定元素出现的次数。通过`listTest()`方法,我们使用增强for循环遍历集合,比较每个元素是否等于指定元素`s`,如果相等,则增加计数器`count`的值。最后返回计数器的值,即指定元素的出现次数。 ```java public static int listTest(Collection<String> list, String s) { int count = 0; for (String string : list) { if (s.equals(string)) { count++; } } return count; } ``` 练习三:该练习的目标是将一个`int`数组转换为包含相同元素的`ArrayList`,元素类型为`Integer`。这里我们可以使用`Arrays.asList()`方法将数组转换为列表,然后通过`ArrayList`的构造函数创建一个新的`ArrayList`实例。 ```java public static ArrayList<Integer> listTest(int[] arr) { return new ArrayList<>(Arrays.asList(Arrays.stream(arr).boxed().toArray(Integer[]::new))); } ``` 在上述代码中,`Arrays.stream(arr)`将数组转换为流,`boxed().toArray(Integer[]::new)`将流中的整数转换为`Integer`对象的数组,最后`Arrays.asList()`将数组转换为列表,`ArrayList`的构造函数则将列表转换为`ArrayList`实例。 通过这两个练习,我们可以深入理解Java集合框架中`Collection`接口以及其子接口`List`的基本用法,同时掌握了如何遍历集合、统计元素出现次数以及如何在集合和数组之间进行转换。这些知识点对于日常Java编程工作非常重要,特别是在处理大量数据时。