我主要是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之间的主要区别是什么? 问题答案: 是大多数集合类的基本接口,而是实用程序类。我建议您阅读文档。