1.数组:length只表示该数组能容纳多少元素或句柄,并不能得知实际包含多少,数组的访问速度比集合类要快,但其他的操作就不行,不够灵活,数组的大小必须事先确定,并且一旦创建并且初始化就不能删除里面的元素,以为占有的内存是不能释放的。
2.集合类:集合类在不使用范型的情况下,是不能自主控制放入集合内的对象的类型的,因为集合类定义的是一个根类型Object,但如果放入集合的对象不是同一个类型,那么在取出集合类对象时就会报错了,除了范型,控制集合中存入的对象的类型的就是将该集合放入一个方法中,该方法的参数就是某一对象的类型,然后将该对象存入集合中,这样就能保证存入集合的对象只会有一种类型,否则会在编译期间报错。
3.stack:满足“先入先出”的原则,就是堆栈中最先压入的对象要最先取出。
4.ArrayList与LinkedList比较:按顺序遍历集合的元素与插入与删除操作则LinkedList效率高,而随机访问集合中的元素则ArrayList效率高。
5.HashSet与ArraySet,我们默认选择HashSet,一样在Map的选择中,我们优先选择HashMap
6.java中提供了两个静态类来对数组或列表进行排列和搜索,用于数组的是Arrays,用于列表的是Collections,Collections中有个控制列表等集合不可修改的属性,这个还是蛮重要的,这样我们可以将一个容器设为private,然后写一个方法是来返回一个不可修改的容器类句柄,这样我们就可以保证用户不能修改容器内的元素,而在该类中还是可以修改的。还有一个静态方法是控制容器类同步的,叫synchronizedCollection,
7.关键字Instanceof告诉我们对象是不是属于一个特定类型的的实例,返回值是boolean值,如if(x instanceof dog){(dog)x.bark()};
2.集合类:集合类在不使用范型的情况下,是不能自主控制放入集合内的对象的类型的,因为集合类定义的是一个根类型Object,但如果放入集合的对象不是同一个类型,那么在取出集合类对象时就会报错了,除了范型,控制集合中存入的对象的类型的就是将该集合放入一个方法中,该方法的参数就是某一对象的类型,然后将该对象存入集合中,这样就能保证存入集合的对象只会有一种类型,否则会在编译期间报错。
3.stack:满足“先入先出”的原则,就是堆栈中最先压入的对象要最先取出。
4.ArrayList与LinkedList比较:按顺序遍历集合的元素与插入与删除操作则LinkedList效率高,而随机访问集合中的元素则ArrayList效率高。
5.HashSet与ArraySet,我们默认选择HashSet,一样在Map的选择中,我们优先选择HashMap
6.java中提供了两个静态类来对数组或列表进行排列和搜索,用于数组的是Arrays,用于列表的是Collections,Collections中有个控制列表等集合不可修改的属性,这个还是蛮重要的,这样我们可以将一个容器设为private,然后写一个方法是来返回一个不可修改的容器类句柄,这样我们就可以保证用户不能修改容器内的元素,而在该类中还是可以修改的。还有一个静态方法是控制容器类同步的,叫synchronizedCollection,
7.关键字Instanceof告诉我们对象是不是属于一个特定类型的的实例,返回值是boolean值,如if(x instanceof dog){(dog)x.bark()};