关闭

集合之我见

标签: 集合ListSetMap
364人阅读 评论(0) 收藏 举报
分类:
--------List之我见:先贴码了。-------------------
public class ListTest {
    
    public static void main(String[] args) {
        LinkedListTest();
    }
   
    /*ArrayList: 方法都差不多,ArrayList 是基于数组。当容量满了时,增加原容量的一半。线程不同步。
    查找循环遍历比较方便,但插入,删除等都要移动数据,一般数据量小的时候使用与ArrayList。*/
     
    /*LinkedList 实际为链表 ,其内存空间不连续,不受Array 性能的限制,一个节包含了当前节点的数据和下一个节点的信息。所以插入或者删除的时候,不用大量移动数据。当插入或者删除频繁时,选择LinkedList更好些,遍历的时候比较忙*/
    private static void LinkedListTest() {
        LinkedList  linklist=new LinkedList();
        linklist.add("aa");
        linklist.add("bb");
        linklist.add("cc");
        linklist.add("dd");
        for (int i = 0; i < linklist.size(); i++) {
            System.out.println(linklist.get(i));
        }
    }

     //都实现了List 接口。 ArrayList 默认大小是0  而 Vector 默认大小是10
    //Vector  基于数组,向量的大小大于其容量时,容量自动增加的量,增长原来的一倍。它是线程同步的。    
}


--------------Set之我见:------------------
public class SetTest {
    //都实现set 接口
    public static void main(String[] args) {
        treeSetTest2();
    }
    
    
    //set特点:不可以将相同的对象放入到set 容器中。若放的是自定义的对象,则对象需要重写hashCode方法
    public static void hashSetTest() {
        HashSet hs=new HashSet();
        hs.add(1);
        hs.add(3);
        hs.add(2);
        hs.add(3);//测试放入相同的对象,则覆盖
        for (Object object : hs) {
            System.out.println(object);
        }
    }
    
    //hashSet 存入自定义对象学生类,要重写hashCode()方法和equals()方法
     public static  void setObject(){
            HashSet<Student> hs=new HashSet<Student>();
            hs.add(new Student(1,"aa"));
            hs.add(new Student(2,"bb"));
            hs.add(new Student(3,"cc"));
            hs.add(new Student(2,"bb"));//测试放入相同的对象
            for (Object object : hs) {
                System.out.println(object);
            }
    }
     
     public static void treeSetTest1(){
         TreeSet ts=new TreeSet();
         ts.add(1);
        ts.add(2);
        ts.add(3);
        ts.add(2);//测试放入相同的对象
        for (Object object : ts) {
            System.out.println(object);
        }
     }
     
     //treeSet 存放的对象一定要是可排序类型的,自定义的类可以实现 comparable 接口
     public static void treeSetTest2(){
         TreeSet<Student> ts=new TreeSet<Student>();
         ts.add(new Student(1,"aa"));
        ts.add(new Student(2,"bb"));
        ts.add(new Student(3,"cc"));
        ts.add(new Student(2,"bb"));//测试放入相同的对象
        for (Object object : ts) {
            System.out.println(object);
        }
     }
}

--------------------Map之我见:------------------
public class MapTest {
    //map容易的特点:键可以出现null。键不能够重复,值可以重复 (也就是一对多)。键若重复了,则原来的值会被覆盖。
    //map 接口没有继承Iterable 接口,遍历的时候用keySet
    public static void main(String[] args) {
        hashMapTest();
    }
    // 若出现了多个键,则以最后一个键值对存储,前面的会被覆盖。hashMap也实现了哈希算法。
    public static void hashMapTest() {
        HashMap<Integer, String> hm = new HashMap<Integer, String>();
        hm.put(1, "aa");
        hm.put(2, "bb");
        hm.put(3, "cc");
        hm.put(4, "cc");
        hm.put(null"dd");
        for (Integer o : hm.keySet()) {
            System.out.println(hm.get(o));
        }
    }
    
    //treeMap 会按照键的顺序来存放的。
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:34520次
    • 积分:996
    • 等级:
    • 排名:千里之外
    • 原创:67篇
    • 转载:5篇
    • 译文:1篇
    • 评论:1条
    最新评论