Arraylist Linkedlist 和Hashmap这三个类到底有啥区别啊
我看着除了有些方法不一样外 好像本质上都是动态数组啊。
能不能说下他们的区别。以及各自的优点? 
谢谢谢谢谢谢谢谢谢谢谢谢谢谢!!!!!!!!

解决方案 »

  1.   

    arraylist和linklist 都是动态数组 只不过他们的底层实现不一样 arraylist是基于数组的 而linklist是基于双向链表的  如果你要执行查询操作 应该用arraylist 效率比较高 如果想要删除元素可以用linklist 这样效率比较高
    这两个集合类都实现了list接口 而list接口扩展了 collection接口 这个接口是java集合类框架的基础 大部分基础方法都在里面进行了定义 
    hashmap这个类 实现了map接口  它储存的是 键值对 在存储值后 你可以通过对应的键 来访问它的值
      

  2.   

    up
    lz没JAVA的书吗   建议看看CORE JAVA 卷2的第二章
      

  3.   

    忘了问了 还有Vector类呢 这几个类到底有啥区别啊?
      

  4.   

    ArrayList 内部以数组结构存储   线程不同步  安全性差 效率高
    Vector    内部以数组结构存储   线程同步  安全性高 效率低
    以上两个数组结构出处的 查询效率高 删除和插入的效率低 LinkList  内部以链表结构存储  查询的效率低 删除和插入的效率高
    Hashmap   键值对形式存储        访问方式; 根据键取值  适合用做类似购物车的东东
    版主可以根据需求取舍 看是要安全还是要效率
      

  5.   

    用例子说明关于线程问题你可以到网上查查资料很多
    例子:
        A 和 B 在不同窗口同时买到北京的同一车次的火车票(就是两人买一样的东西) 
       售票员发现还有一钞票 :
       问题处理了 ; 如果线程不同步 ,那么这张票 可能买个A B两个人 两个人同一张票
       线程同步就不会出现这种问题 。
      
       总之:同步 我最新访问某条数据 你要还想访问此数据那么就点等我访问完 也就是资源独占
             不同步 就是 我们可以同时访问相同数据 
    我表达能力太差了 请见谅 希望版主能看懂