2014-09-02 119 views
0

构建ArrayList <>从List<>构建ArrayList<>的最佳方法是什么?从列表<>

一个例子将是巨大的

和另外一个问题,我应该保持一个List<>工作,而不是将所有我ListsArrayLists

编辑

只是可以肯定我的代码:可以这样工作:

public List<Rendezvous> getAllNewlyDoneRdvs() { 
     if (!isThereNewlyDoneRdvs())return null; 
     List<Rendezvous> rdvs = rdvDao.findAllByState(Constants.rdvStateUndone); 
     ArrayList<Rendezvous> rendezvousList = new ArrayList<>(); 
     for (Rendezvous rdv :rdvs){ 
      if (rdv.getDateRdv().before(Constants.getCurrentDatetime())) rendezvousList.add(rdv) ; 
     } 
     rdvs = rendezvousList; 
     return rdvs; 
    } 
+0

看看这个问题: http://stackoverflow.com/questions/2279030/type-list-vs-type-arraylist-in-java – nem035 2014-09-02 21:21:21

+1

这取决于你对你的'List'做什么。如果您只是通过例如遍历它,基本的类“List”应该足够了。 – 2014-09-02 21:21:29

+0

相关:[它是什么意思,程序到接口](http://stackoverflow.com/questions/383947/what-does-it-mean-to-program-to-an -interface) – Pshemo 2014-09-02 21:26:10

回答

4

as总结这两种类型都相同

List<>可能已经在这种情况下,一个ArrayList<>只是改变参考 如果不迭代,并添加

+0

啊所以我可以建立一个'ArrayList <>',填充它,然后最后做一个'List <>'refernce并影响我的数组列表并返回它?(因为我的方法返回'List <>') – Aissasa 2014-09-02 21:24:02

+3

是'List'是一个接口,它可能是'ArrayList' – 2014-09-02 21:24:42

+0

好的,谢谢,我会尽快接受这个答案 – Aissasa 2014-09-02 21:28:31

3

如果你想确保你有一个ArrayList的工作,你可以只是做new ArrayList(existingList)

这样做的最佳原因可能是您希望在不影响原始列表的情况下添加,更新或删除列表中的项目。

1

声明时使用List将是一种很好的做法。

List<> list = new ArrayList<>(); 
0

你可以使用Collections.list()如图所示here

1

你应该知道,名单是一个接口和ArrayList是一个具体的类,所以你应该总是使用

List<Type> myList = new ArrayList<Type>(); 
0

你如果你有一个参数List的参数,因为List(甚至在标准库中)的某些实现是不可变的或者是固定大小的,所以可能会被抓出来。 在这种情况下,如果你需要一个可变的列表,这是完全合理的,以创建具有相同内容的ArrayList为您现有的不确定性,实现List

ArrayList<T> newArrayList = new ArrayList<T>(oldList); 
0

它sheems你第一次比较的日期,然后准备新名单。

这绝对没问题。但是在这种情况下,你应该在DAO本身中有另一个方法,它在当前日期之前返回具有DateRdv的Rendezvous列表。

+0

好,这不是我选择的方法,我搜索列表与他们的状态(完成或尚未完成,我需要的目的是我的应用程序;)) – Aissasa 2014-09-02 22:58:12