本帖最后由 Kelvinhu 于 2014-4-11 01:03 编辑
javase基础的视频看完啦,好好总结一下~记录下,以后可以供自己翻一下~如有不妥的地方欢迎大家质疑~
首发自我的小博客嘿嘿~ http://blog.csdn.net/u014517350/article/details/23391957
概念 容器:Java API所提供的一系列的实例,用于在程序中存放对象。 容器 提供的Api包在java.util包内。
java中提供的容器结构图
其中Set中的数据对象没有顺序并且不可以重复;List中的数据对象有顺序并且可以重复。(如果这两个对象互相equls,就算是重复。);Map定义了存储键值对方法。
- import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象,可以装不同类型的,如下所示。
- room.add("apple");
- room.add(new Integer(88));
- System.out.println(room.size()+"--"+room);
- }
- }
复制代码
通过上面代码可知道容器可以装不同类型的对象,但是这样效率不高,我们可以放相同类型的对象,可以用方便好用的泛型。 重写eqults方法应该重写hashCode方法,在这个类的某个对象当作索引的时候会使用hashCode方法。
LinkedList底层的数据结构是链表形式的,是散列形式的; ArrayList的底层的数据结构是数组形式的,是连续的。 遍历用到了Iterator - import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象
- room.add(new Name("apple"));
- room.add(new Name("banana"));
- System.out.println(room.size()+"--"+room);
- for(Iterator it = room.iterator();it.hasNext();) {
- Name n = (Name)it.next();
- System.out.println(n);
- }
- }
- }
- class Name {
- private String name;
- Name(String name){
- this.name = name;
- }
- }
复制代码
遍历还可以用增强的for循环~方便的遍历数组或者Collection 但是有缺陷:1、遍历数组时候不能方便访问下标值。2、与使用Iterator相比,不能删除集合中的内容 除了简单遍历并读出内容,不建议使用增强for循环来遍历。
类之间互相比较大小,进行排序,可以实现Comparable接口,重写compar to方法即可。
- import java.util.*;
- public class Test{
- public static void main(String args[]) {
- Collection room = new ArrayList();
- //父类引用指向子类对象
- room.add(new Name("apple",15));
- room.add(new Name("banana",10));
- room.add(new Name("banana",12));
- System.out.println(room.size()+"--"+room);
- for(Iterator it = room.iterator();it.hasNext();) {
- Name n = (Name)it.next();
- System.out.println(n.name+"--"+n.price);
- }
- }
- }
- class Name implements Comparable{
- String name;
- int price;
- Name(String name,int price) {
- this.name = name;
- this.price = price;
- }
- public int compareTo(Object o) {
- Name n = (Name)o;
- if(this.price > n.price) return 1;
- else if(this.price < n.price) return -1;
- else return 0;
- }
- }
复制代码
|