集合之我见

原创 2013年12月04日 18:59:08
--------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 会按照键的顺序来存放的。
}

相关文章推荐

设计模式之我见

  • 2012年09月07日 12:55
  • 72KB
  • 下载

安全网络之我见

  • 2013年05月17日 11:01
  • 457KB
  • 下载

Storm编程概述之我见

在学习Storm过程中,遇到了很多新的概念,最初的时候拼拼剪剪的运行了演示实例。经过一段时间的学习后,再回头看一下Storm究竟是什么。 一、Storm 框架的特点   Storm定义了一批实时计...

PN序列之我见

  • 2016年04月07日 00:46
  • 212KB
  • 下载

Udp打洞和TCP打洞之我见

TCP打洞和UDP打洞的区别 2013-04-11 12:06 211人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载。 为什么网上讲到的P2P...

matlab与c混合编程之我见

  • 2009年11月24日 23:20
  • 45KB
  • 下载

InfluxDB_0.9 之我见(一)

关于InfluxDB数据库,网上大多数是0.7/0.8的版本的介绍,对于当下的版本0.9,还有不少变更的地方,下面简单地说一下这几天学习InfluxDB的心得体会。 InfuxDB的具体是怎样的一个...

Java OOP编程思想学习之我见

  • 2008年07月30日 20:04
  • 6KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:集合之我见
举报原因:
原因补充:

(最多只允许输入30个字)