mrna反转录成cdna原理:觉得自己是java高手的来看看,菜鸟问题!

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/27 16:54:47
在编程过程中遇见了以下几个东东LIST Collection 接口 HashMap HashSet LinkedList ArrayList
在实际编程中接口是不可以实例化对象的,可是为什么可以这样写
List lst = null;
lst = Query(strSql);
Query(strSql)是一个查询函数返回值为ResultSet,strSql是存储查询语句的String对象,我想知道为什么List Collection 这类的接口不能实例化对象,但是它去可以这样使用,哪位高手能给我描述一下这段代码,这个lst是什么,是LIST类型的变量吗?
还有HashMap HashSet LinkedList ArrayList都是集合类,可是我不清除他们之间有什么区别?什么情况下应该用什么样的集合?最好能给实例代码啥的,在下不胜感激,万分感谢!
我晕,难道是高手都喜欢分吗?怎么没人回答啊?

接口不可以被实例化,但是接口可以作为引用。这也正是其多态性的体现。
这里Query(strSql)可以返回实现了List接口的任何容器,比如LinkedList ArrayList。在外层使用中,用户不需要知道内部使用的是数组,还是链表,而只需要调用接口中的方法即可实现自己需要的操作。
比如我们可以在Query中作如下声明和实例化:
List list = new ArrayList();
然后返回
return list;
ArrayList是实现了接口List的数组容器。
LinkedList是实现了List的链表容器。
HashMap HashSet是某种Hash容器,具体机制不清楚。估计可能是某种树型结构。