常见的代码private List lst= new ArrayList();

lilinew 2009-07-31 03:06:06
急切一些不常见的代码
private List<DBWriter> lst= new ArrayList<DBWriter>();
到底如何理解,前面是list ,后面是arraylist

DBWriter是一个线程类
public class dDBWriter extends Thread
(代码里面是一个延迟时间的代码)

很难接受这种表达方式?
...全文
270 15 打赏 收藏 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
24K純帥 2009-08-01
  • 打赏
  • 举报
回复
List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。这里的有序不是指排序,而是只每个元素都有自己的位置。
ArrayList和LinkedList都是实现这个接口的类
楼主基础很重要
ahahayay 2009-07-31
  • 打赏
  • 举报
回复
java的多态; 父类类型,子类对象;对于接口同样使用;;;
gesanri 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 whuisszl008 的回复:]
引用 3 楼 mqinghuang 的回复:
引用 2 楼 gesanri 的回复:
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
正解,二楼的回答很详细了,

List是接口,不能生成对象,这句话正确。
ArrayList是它的子类?你们就不要误人子弟了啊。

[/Quote]

呵呵,手误,ArrayList是List的实现类
wym2005em 2009-07-31
  • 打赏
  • 举报
回复
这就是面向接口,父类应用指向子类对象。。。
JavaChenYang 2009-07-31
  • 打赏
  • 举报
回复
这是java 多态的应用,楼主应该补补基础知识,呵呵
aywrenyue 2009-07-31
  • 打赏
  • 举报
回复
第一:java提倡面向接口编程,举一个例子:现在你数据结构用的是ArrayList,而对外暴露的是List的方法,假如某一天你在refator的时候发现LinkedList更合适,那么你不需要更改对外暴露的方法,只需要更改他的一个实现即可。这样侵入性或者耦合性更低。
第二:是泛型
假如不用泛型的话,你需要用强制类型:例如以下代码:
用了泛型:

List<String> list = new ArrayList<String>();
list.add("str");
String str = list.get(0);

不用泛型:

List list = new ArrayList();
list.add("str");
String str = (String)list.get(0);
或者
String str = list.get(0).toString();
whuisszl008 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mqinghuang 的回复:]
引用 2 楼 gesanri 的回复:
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
正解,二楼的回答很详细了,
[/Quote]
List是接口,不能生成对象,这句话正确。
ArrayList是它的子类?你们就不要误人子弟了啊。
xlxyeyu 2009-07-31
  • 打赏
  • 举报
回复
private List <DBWriter> lst= new ArrayList <DBWriter>(); 


其实这种写法很好,因为如果在现实中发现ArrayList不怎么实用,那么只要修改new ArrayList<DBWriter>()成你想要的类型就可以了,别的地方基本上都不用修改的(当然你要保证没有类似:ArrayList<..>list = (ArrayList<..>)lst的写法!)
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gesanri 的回复:]
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
[/Quote]

确实,这个时JAVA的多态,楼主也可以看下引用,借口不能产生对象,用子类可以实现,<DBWriter>是泛型,是一种保护,就是让List的对象都是这个类型
lilinew 2009-07-31
  • 打赏
  • 举报
回复
Iterator 是社么(迭代器?)如何理解for (Iterator <Entry <UpdateVO, List <UpdateVO>>> it = chOMOMap.entrySet().iterator();
it.hasNext();) {

wysunning 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mqinghuang 的回复:]
引用 2 楼 gesanri 的回复:
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
正解,二楼的回答很详细了,
[/Quote]
很好
lilinew 2009-07-31
  • 打赏
  • 举报
回复
Please see this :

for (Iterator<Entry<UpdateVO, List<UpdateVO>>> it = chOMOMap.entrySet().iterator();
it.hasNext();) {

How to understand?
mqinghuang 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gesanri 的回复:]
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
[/Quote]正解,二楼的回答很详细了,
gesanri 2009-07-31
  • 打赏
  • 举报
回复
List是接口,能生成接口的对象吗?不行,所以用它的子类ArrayList来实现,至于里面有DBWriter,这是泛型,表明这个List中的对象类型都是类DBWriter的对象
closewbq 2009-07-31
  • 打赏
  • 举报
回复
ArrayList 实现了List接口 = =!

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧