Collection java 作用

collection子接口有ListqueueSet这些集合,java已经给我们作好了这些我们需要的集合,为什么还要有collection这个接口呢?具体能通过一个例子告... collection子接口有List queue Set 这些集合,java已经给我们作好了这些我们需要的集合,为什么还要有collection这个接口呢?具体能通过一个例子告诉我您在项目中从collection继承的类,实现了什么方法?可能只是说不太容易明白,您把实现的需求写一下,简单代码写一下,我可能就容易明白了。谢了 展开
 我来答
爱吃溜肥肠
2014-10-13 · TA获得超过627个赞
知道小有建树答主
回答量:326
采纳率:50%
帮助的人:217万
展开全部

Java中的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能),说白了,接口其实就是一个规范,给你定制一个标准,接口中的方法只有方法名,没有实体;接口可以是JAVA的API中原本就有的,也可以是自定义的;当实现接口中的方法时,方法名相同,但方法体中的实现不同;对于API中原来已经提供的接口而言,当自身提供的一些实现无法满足你实际需求时,就需要你自己根据自身需求来实现接口中的方法;就如这段代码:

package test;

import java.util.Collection;
import java.util.Iterator;

public class TestColl implements Collection{

@Override
public boolean add(Object e) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean addAll(Collection c) {
// TODO Auto-generated method stub
return false;
}

@Override
public void clear() {
// TODO Auto-generated method stub

}

@Override
public boolean contains(Object o) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean containsAll(Collection c) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean isEmpty() {
// TODO Auto-generated method stub
return false;
}

@Override
public Iterator iterator() {
// TODO Auto-generated method stub
return null;
}

@Override
public boolean remove(Object o) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean removeAll(Collection c) {
// TODO Auto-generated method stub
return false;
}

@Override
public boolean retainAll(Collection c) {
// TODO Auto-generated method stub
return false;
}

@Override
public int size() {
// TODO Auto-generated method stub
return 0;
}

@Override
public Object[] toArray() {
// TODO Auto-generated method stub
return null;
}

@Override
public Object[] toArray(Object[] a) {
// TODO Auto-generated method stub
return null;
}

}

当定义的实现类TestColl实现接口Collection时,接口中可以重写的方法如上代码,你需要哪个方法,就在对应的方法里面写出实现代码就可以了.

东东程序猿
2014-10-13 · TA获得超过724个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:197万
展开全部
我们知道接口里面是没有实际的东西的,也就是说他没有任何实际价值,可是他一直存在,那么就一定有他存在的原因。
你可以这么理解,你想一下,插销和插座,真的有存在的价值吗?不就是两根线接一起嘛,为什么要插销和插座?但是没有能行吗?显然不行,为什么不行?因为接线费劲,有一个统一的标准,只要大家都按照同一个标准来设计电线头子,那么接线的时候一定能通电,对吧!接口的价值也一样,定义了接口就是为了制定规范的,所以说实现接口的时候强制要求实现接口方法,因为那是标准,你生产的是插座,就一定要带俩插孔,不然你就不是插座了。同样的,我说我生产的插座好,我的插座不光带俩插孔,还带花的,那没人管了。所以说实现类里面必须实现接口方法,之后还可以跟带花的插座一样,可以拓展他自己独有的东西。
明白接口的价值了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jamxval
2014-10-13 · TA获得超过6821个赞
知道大有可为答主
回答量:4308
采纳率:82%
帮助的人:1387万
展开全部

在面向对象的编程中,接口是表示将来它的实现类应该具备什么功能(具体怎么做到这点,就是实现类的细节,与接口声明无关)。因此我们可以在实现类中实现多个接口把这些接口中的功能都实现了。


像 Collection 接口仅声明了一些基本的特性,而List, Queue, Set 则扩展了声明了其它特性。面向对象中需要正确地划分功能说明并模块化。便于将来类库规模复杂之后依然条理清晰,不容易出错。如果你的程序就那么几个类的话,当然你可以把所有东西写在单一一个 java 源文件中。


那么当你想在Java 中知道那个类实现了什么方法,如果你确信知道那个类名,你可以查看它的 API 文档,上面会写上它实现了什么接口,比如 ArrayList 我们已知它实现了 List 接口,而 List 又扩展了 Collection 接口。如果你依然动态地计算出来,比如当我们拿到一个对象实例时,我不知道它是什么类型的,则可以用反射:

Object a = ...;

Class clazz = a.getClass();

Class[] interfaces = clazz.getInterfaces();
for(int i = 0, size = interfaces.length; i < size; i++) {
   System.out.println("Interface :" + interfaces[i].getName());
}

或者你想知道它是否是 List 的实例类:
if (a instanceof List) {
   for(ListIterator iter = ((List) a).listIterator(); iter.hasNext();) {
       ...
   }
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汐日南莘
2015-11-14 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.6万
采纳率:45%
帮助的人:7343万
展开全部
在编程中,需要管理很多对象集.比如某班全部同学,某个公司所有人员资料等.
要管理这些资料,java必须提供某种数据结构支持.Collection 集合就很好的解决了这一问题

Collection 是常用的集合List Map Set的顶级接口
它提供了对集合对象进行基本操作的通用接口方法。Collection接口在Java 类库中有很多具体的实现。Collection接口的意义是为各种具体的集合提供了最大化的统一操作方式,其直接继承接口有List与Set。
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式