当前位置: 首页 > 面试题库 >

Collection 和Collection有什么区别

阎彬炳
2023-03-14
问题内容

我主要是C#开发人员,当时我正在和朋友一起教数据结构,他们在大学里使用Java,我在Java中看到这样的表达:

void printCollection(Collection<?> c) {
    for (Object e : c) {
        System.out.println(e);
    }
}

我在C#中还没有看到这样的东西,所以我想知道Java Collection<T>Collection<?>Java 之间有什么区别?

void printCollection(Collection<T> c) {
    for (Object e : c) {
        System.out.println(e);
    }
}

我认为它也可以上面的方式编写。在文档中的家伙比较Collection<Object>Collection<T>虽然。

示例取自http://docs.oracle.com/javase/tutorial/extra/generics/wildcards.html


问题答案:

Collection<?> 是未知类型参数的集合。

就呼叫者而言,两者之间没有区别

void printCollection(Collection<?> c) { ... }

<T> void printCollection(Collection<T> c) { ... }

但是,后者允许实现引用集合的type参数,因此通常是首选。

存在前一种语法是因为并非总是可能在适当的范围内引入类型参数。例如,考虑:

List<Set<?>> sets = new ArrayList<>();
sets.add(new HashSet<String>());
sets.add(new HashSet<Integer>());

如果我要用?某种类型形参替换T,则所有输入集中sets将被限制为相同的组件类型,即,我无法再将具有不同元素类型的集合放入同一列表,如以下尝试所示:

class C<T extends String> {
    List<Set<T>> sets = new ArrayList<>();

    public C() {
        sets.add(new HashSet<String>()); // does not compile
        sets.add(new HashSet<Integer>()); // does not compile
    }
}


 类似资料:
  • 本文向大家介绍Collection 和 Collections 有什么区别?相关面试题,主要包含被问及Collection 和 Collections 有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 Collection 是一个集合接口,它提供了对集合对象进行基本操作的通用接口方法,所有集合都是它的子类,比如 List、Set 等。 Collections 是一个包装类,包含了很多静态方法

  • 问题内容: 和Java 之间有什么区别?我什么时候应该使用哪个? 问题答案: 首先:a 是a 。但是,它是专门的。 A 就是这样:项目的集合。您可以添加内容,删除内容,迭代内容并查询其中有多少内容。 一个增加有关规定的东西,它的序列信息:你可以在获取位置的元素 ñ ,你可以在位置添加元素 ñ ,你可以在位置删除元素 ñ 。 在a中,您无法执行此操作:未定义“此集合中的第5个元素”,因为没有定义的顺

  • 问题内容: 请考虑以下来自Shiro 界面的API方法,但也可能存在于其他库中: 是的,即使是现在,仍然有一些库使用原始类型,可能是为了保留Java 1.5之前的兼容性? 如果我现在想将此方法与流或类似的可选项一起使用: 我收到有关未经检查的转换和使用原始类型的警告,我更喜欢使用参数化类型。 蚀: 类型安全:方法collect(Collector)属于原始类型Stream。泛型类型Stream 的

  • // 创建集合 collect([1, 2, 3]); // 返回该集合所代表的底层数组: $collection->all(); // 返回集合中所有项目的平均值: $collection->avg(); // 将集合拆成多个给定大小的较小集合: $collection->chunk(4); // 将多个数组组成的集合折成单一数组集合: $collection->collapse(); // 用

  • 本文向大家介绍请说明Collection 和 Collections的区别。相关面试题,主要包含被问及请说明Collection 和 Collections的区别。时的应答技巧和注意事项,需要的朋友参考一下 考察点:集合 Collection是集合类的上级接口,继承与他的接口主要有Set 和List. 考察点:ArrayListArrayList 和Vector都是使用数组方式存储数据,此数组元素

  • 问题内容: Java中的Collection和Collections之间的主要区别是什么? 问题答案: 是大多数集合类的基本接口,而是实用程序类。我建议您阅读文档。