dav*_*nes 12 java collections list arraylist
声明集合的区别是什么
public class CatHerder{
private List cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}
//or
public class CatHerder{
private ArrayList cats;
public CatHerder(){
this.cats = new ArrayList();
}
}
//or
public class CatHerder{
private ArrayList<Cat> cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}
Run Code Online (Sandbox Code Playgroud)
Mat*_*all 22
您应该将其声明为a List<Cat>,并将其初始化为ArrayList<Cat>.
List是一个接口,ArrayList是一个实现类.对接口而不是实现进行编码几乎总是更可取.这样,如果您需要稍后更改实现,它将不会破坏针对该接口编码的消费者.
根据您实际使用列表的方式,您甚至可以使用不太具体的java.util.Collection(List扩展的接口).
至于List<Cat>(您可以将其视为"cat of list")vs List:这是Java的泛型,它可以安全地确保编译时类型.简而言之,它允许编译器确保List只包含Cat对象.
public class CatHerder{
private final List<Cat> cats;
public CatHerder(){
this.cats = new ArrayList<Cat>();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10888 次 |
| 最近记录: |