java 中 collection 和set ,list
add方法是collection,但是set和list在实现collection接口时都有重写该方法,set和list的add方法不同就是最好的证明。
api中有写到“如果 set 中尚未存在指定的元素,则添加此元素(可选操作)。更确切地讲,如果此 set 没有包含满足
(e==null ? e2==null : e.equals(e2)) 的元素 e2,则向该 set 中添加指定的元素
e。如果此 set 已经包含该元素,则该调用不改变此 set 并返回 false。结合构造方法上的限制,这就可以确保 set
永远不包含重复的元素。 ” 简单来说就是set中不会重复添加相同的元素,而list却可以。collection是个接口,并不是抽象类,而arraylist这个非抽象类实现了collection这个接口,肯定是要重写接口中的方法,所以add方法肯定是被重写的。对于最后一个问题,两者的区别再来看2张图片。
显然collection c=new ArrayList():中的c对象能够使用的方法只是来自Collection中所有的,对于arraylist这个类所特有的方法它是不具备的,也是不可以使用的。所以ArrayList C =new Arraylist()中的C对象要明显多了许多方法。一般我们都采用collection c=new ArrayList():这种写法是因为面向接口的编程对于日后的更改会更方便,举个例子,如果以后把collection c=new ArrayList():改成=new HashSet();后面的代码是不需要做任何变动的,因为c所用的方法是类从collection继承的,而如果ArrayList C =new Arraylist()改成HashSet C= new HashSet();的话,后面代码可能要做很大的变动,毕竟ArrayList类中存在的方法HashSet类中不一定有。
//楼主看我这么辛苦作答,要是觉得大体满意就采纳呗。
java 语言里 遍历 collection 的方式 是怎样?
java 语言里 遍历 collection 的方式:
方法一:使用迭代器进行遍历
CollectionString c = new HashSetString();
c.add(“java”);
c.add(“cpp”);
c.add(“php”);
c.add(“c#”);
c.add(“objective-c”);
IteratorString it = c.iterator();
while (it.hasNext()) {
String str = it.next();
System.out.println(str);
}
方法二:使用for进行遍历
CollectionString c = new HashSetString();
c.add(“java”);
c.add(“cpp”);
c.add(“php”);
c.add(“c#”);
c.add(“objective-c”);
for (String str : c) {
System.out.print(str.toUpperCase() + ” “);
}
java代码中Collection c = new ArrayList 为什么说比ArrayList c = new ArrayListy用法灵活?
Collection 是ArrayList的父接口,如果用ArrayList c = new ArrayList();这种形式,那么c对象只能是一个ArrayList;如果用Collection c = new ArrayList();这种形式,那么c对象就还可能是Collection下的其他子类的对象,例如LinkedList等。针对c对象来说,前一种是不是更灵活?
java 中的Collection
Collection是一个接口。
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素。
? extends Object这个是泛型,就是说把他定义为一个object的类型,具体的什么是泛型你得好好的看看资料
java中collection接口 中的方法 add(E o) ,addAll(Collection
add(E o) 确保此 collection 包含指定的元素(可选操作)。
确保此 collection 包含指定的元素(可选操作)。如果此 collection 随调用的结果而发生改变,则返回 true。(如果此 collection 不允许有重复元素,并且已经包含了指定的元素,则返回 false。)
支持此操作的 collection 可以限制哪些元素能添加到此 collection 中来。需要特别指出的是,一些 collection 拒绝添加 null 元素,其他一些 collection 将对可以添加的元素类型强加限制。Collection 类应该在其文档中清楚地指定能添加哪些元素方面的所有限制。
如果 collection 由于某些原因(已经包含该元素的原因除外)拒绝添加特定的元素,那么它必须 抛出一个异常(而不是返回 false)。这确保了在此调用返回后,collection 总是包含指定的元素。
参数:
o – 确定此 collection 中是否存在的元素。
返回:
如果此 collection 随调用的结果而发生改变,则返回 true
addAll(Collection? extends E c) 将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。如果在进行此操作的同时修改指定的 collection,那么此操作行为是不明确的。(这意味着如果指定的 collection 是此 collection,并且此 collection 为非空,那么此调用的行为是不明确的。)
参数:
c – 要插入到此 collection 的元素。
返回:
如果此 collection 随调用的结果而发生改变,则返回 true
clear() 移除此 collection 中的所有元素(可选操作)。
移除此 collection 中的所有元素(可选操作)。此方法返回后,除非抛出一个异常,否则 collection 将为空。
java中coll是什么
java.util.Collection 是一个 集合接口。它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
2、java.util.Collections 是一个包装类。它包含有各种有关集合操作的 静态多态方法。此类 不能实例化,就像一 个工具类,服务于Java的Collection框架。
Java代码