黑马程序员技术交流社区

标题: 【活动】测测你的基础(集合概念)不许看笔记,不需百... [打印本页]

作者: 贠(yun)靖    时间: 2012-5-17 19:06
标题: 【活动】测测你的基础(集合概念)不许看笔记,不需百...
本帖最后由 贠(yun)靖 于 2012-5-17 19:08 编辑

要求如题,三不需要保证的亲,第一个全答对会给3分的,其他的根据情况而定。
   学过了,如果答不上来的或者答不全,那么亲你中奖了,该好好看看笔记了~~!
  
1 ArrayList、Vector、LinkedList之间的区别?
2 Collection和Map之间的区别?
3 HashSet和TreeSet之间的区别?
4 Collection和Collections的区别?
5 Hashtable和HashMap之间的区别?
作者: 褚代江    时间: 2012-5-17 19:09
顶一下啊。嘿嘿,抢个沙发
作者: Fc10232    时间: 2012-5-17 19:15
1,Arraylist 是list 最常用的子类,  异步处理,速度快,不安全,Vactor是旧的操作类,同步处理,安全,速度稍慢,LinkedList是链表的操作类,可以进行FIFO输出
2,Collection  是存放一组单值,Map  是存放一对值,  通过key,value的形式;
3,HashSet  不能存放重复元素, 不排序。TreeSet  可以存放重复元素,排序,如果有重复元素,将覆盖
4,Collection  是一个接口 ,用于操作集合,有大量的子类,Colleciotns是一个工具类,可以直接方便的对集合操作
5,HashMap是是新的,异步处理,不安全,效率高,可以将key设置为null;  HashTable 是同步处理,安全,旧的操作类,性能底。不可以将key设置为null;
作者: 申振华    时间: 2012-5-17 19:16
本帖最后由 申振华 于 2012-5-17 19:20 编辑

ArrayList:底层是数据结构是线性表(数组)结构,查找快,插入和删除慢.
LinkedList:底层数据结构是链表,查找慢,插入和删除较快。
vector:跟ArrayList一样,被ArrayLis所取代。

HashSet:底层数据结构是哈希表,线程不同步;
TreeSet:可以对set集合的元素进行排序。底层数据机构是二叉树,线程不同步。

Collection:集合接口,不能直接实例化对象,需要要用多态来实例化对象。
Collections:集合工具类。能够减少代码的书写量。

HashTable:底层数据机构是哈希表,不允许存放null Key和null Value。线程同步,效率低。
HashMap:底层数据机构是哈希表,允许存放null Key和null value。线程不同步,效率高。

collection:存放一组单值元素
Map:以键值对形式存放元素

作者: Fc10232    时间: 2012-5-17 19:16
呀·················我还在想楼上怎么那么快,,,,,,,,,,,,原来是来抢沙发的    {:soso__8961432591078930798_3:}
作者: 程旦    时间: 2012-5-17 19:19
1 ArrayList、Vector差不多,但是Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,,而LinkedList使用双向链表 所以速度快
2Map是键值对存储的
3底层结构不一样 一个是hash表结构 一个是二叉树结构 hashset无序  treeset有序
4ollection是一个接口,它的子接口 有List Set Map....,Collections 则封装了 实现Collection接口的类  中很多算法
5.HashTable的方法是同步的,HashMap不同步 HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)

全是手打的 知道不是很详细  楼主鼓励一下呗
作者: 宗士为    时间: 2012-5-17 19:21
ArrayList、Vector、LinkedList之间的区别?
ArrayList、数组存储 查找快 删除慢
Vector  同ArrayList一样数组存储 查找快 删除慢   但是线程安全  效率稍微低点
LinkedList是链式存储   查找慢  删除快

2 Collection和Map之间的区别?

Collection是单个存储
Map是键值对存储
3 HashSet和TreeSet之间的区别?
HashSet去重复  无序存储 可以重写hashcode
TreeSet  去重复  有序存储  可以用comparable  和  comparator  定义排列顺序
4 Collection和Collections的区别?
5 Hashtable和HashMap之间的区别?

个人记忆有可能有错误
作者: 林豪    时间: 2012-5-17 19:22
本帖最后由 林豪 于 2012-5-17 19:23 编辑

1,ArrayList线程不安全,增删慢,查询快,替代了线程安全的Vector,Likedlist增删快,查询慢。
2,map存储的是键值对,Collection存储的是单个元素。
3,HashSet存取速度快,用Equals和HashCode保证元素的唯一性,TreeSet可以对Set集合进行排序,用compareTo或者compare 方法中的来保证元素的唯一性
4,Collection是集合框架,Collections是工具类,用于对集合的查找,排序等等。
5,HashTable是旧的线程安全,被HashMap给取代了
作者: 田林    时间: 2012-5-17 19:22
ArrayList和Vector两个底层都是都是数组实现的。Vector是同步的,而ArrayList是不同步。但一般都用ArrayList,效率更好。LinkedList底层是链表实现。ArrayList索引中效率更高,LinkedList增删数据效率更高。
Collection集合中的元素是单独存在的。而Map中存在key和value的映射关系。
HashSet底层是哈希表,而TreeSet底层是二叉树。TreeSet中带排序功能。
Collection是集合的最顶层,而Collections是集合的工具类。Collections中的所有元素都是静态的,里面有很多操作集合的方法。
Hashtable是同步的,而HashMap是不同步的。Hashtable中null不可以作为键和值。但是在HashMap中,null可以作为键和值。

昨天刚看完,完全凭印象!还望楼主指正,补充!



作者: xieshuhua    时间: 2012-5-17 19:41
本帖最后由 谢述华 于 2012-5-17 19:42 编辑

1.
ArrayList 为Vector的升级版本,线程不安全。
LinkedList  链表,其数据结构为链式,方便增加和删除,不方便查阅。
Vector 为1.0版本集合,线程安全。
2.Collection 储存单一数据。Map储存一对数据(键和值)常转化为**Set使用(忘记具体名字了)
3.HashSet:一般需要改写hashCode和equals方法,避免数据重复。
TreeSet:元素必须具备比较性,一般采用覆写CompareTo方法实现Comparable(默认),或者外置比较器(实现compartor),在定义TreeSet时放到后面修饰。
4.Collection 为抽象接口,一般都是用其下面的Set和List。Collections相当于Collection的静态方法,提供了collection的公用方法(sort等),
5.
HashMap为新版本的Hashtable,线程不同步。
Hashtable 下面有个很常用的Property类,常用作程序的配置文件。
都是印象,今天下午刚看完而且做了总结,有博客为证。。。
http://xieshuhua.blog.163.com/blog/getBlog.do?bid=fks_087066086081084066092080094069072085084066093082094069081

作者: 麦田守望者0812    时间: 2012-5-17 19:42
第一层: Iterator(Interface)  <----          Collection(Interface)

第二层:ListIterator(Interface)<-------List(Interface)     Set(Interface)                  Map(Interface)

第三层:                      LinkedList ArrayList  HashSet  SortedSet(Interface)   HashMap   SortedMap(Interface)

                                                LinkedHashSet       TreeSet     LinkedHashMap   TreeMap
Compareable(Interface)                         Comparator(Interface) {Collections  Arrays}实用类  

部分集合框架继承关系
作者: Fc10232    时间: 2012-5-17 19:46
本帖最后由 Fc10232 于 2012-5-17 19:47 编辑
  1. import java.util.Set;
  2. import java.util.HashSet;
  3. public class HashSetDemo {
  4.         public static void main(String[] args) {
  5.                 Set<String> allSet = new HashSet<String>();
  6.                 allSet.add("A");
  7.                 allSet.add("B");
  8.                 allSet.add("C");
  9.                 allSet.add("C");
  10.                 allSet.add("E");
  11.                 allSet.add("F");
  12.                 allSet.add("F");
  13.                 System.out.println(allSet);
  14.         }
  15. }
复制代码
运行结果:[E, F, A, B, C]             是这样子呗

作者: 贠(yun)靖    时间: 2012-5-17 20:06
Fc10232 发表于 2012-5-17 19:46
运行结果:[E, F, A, B, C]             是这样子呗

嗯 只是记得张老师的高新里面提过 在一种情况下是排序的  当一些元素的hash值在同一hash值区域时 就有可能是有顺序的,不过这种情况很少就是了
作者: 郭振    时间: 2012-5-17 20:37
Fc10232 发表于 2012-5-17 19:46
运行结果:[E, F, A, B, C]             是这样子呗

1 ArrayList、Vector、LinkedList之间的区别?
ArrayList:查询快、删除慢 (底层运用数组)   Vactor:查询和删除都是很慢    LinkedList 查询慢、删除快(底层运用链表)
2 Collection和Map之间的区别?
Collection:存储方式是一个个的存储,取出可以用迭代器或者增强for()循环
map:是以键值对的形式存储,通过keySet和entryset 返回Set通过迭代器取出。
3 HashSet和TreeSet之间的区别?
HashSet:底层的数据结构式哈希表、无序   TreeSet:底层数据结构式二叉数、无序的,但可以排序。
4 Collection和Collections的区别?
Collections:他是个接口,不能实例化,只能用他的子类进行实例化。
Collections:工具类,是辅助和增强Collection集合的功能
5 Hashtable和HashMap之间的区别?
Hashtable:同步处理,安全,旧的操作类,性能底,不可以把key设置为null,他的子类Properties可以和io结合
HashMap:异步处理,不安全,效率高,可以将key设置为null
作者: 金肖    时间: 2012-5-17 20:41
1 ArrayList、Vector、LinkedList之间的区别?

ArrayList:底层是数组结构,可对脚标进行操作,查询速度很快,增删相对较慢,线程不同步
Vector:底层线程同步,效率低
LinkedList:底层链表结构,增删较快,查询速度较慢,线程不同步

2 Collection和Map之间的区别?
Collection:是单列集合的父类,

3 HashSet和TreeSet之间的区别?
4 Collection和Collections的区别?

Collection:是单列集合的父类,
Collections:是集合的工具类,里面定义操作集合的方法,比如,反转,二分查找...

5 Hashtable和HashMap之间的区别?

唉,还真是记住的不多呀,下来要好好复习了...
作者: 廖理    时间: 2012-5-17 20:57
1 ArrayList、Vector、LinkedList之间的区别?
Vector:底层数组结构<线程同步,当数组长度超过是,会重新new一个曾长了100%的数组>
ArrayList:底层使用的是数组结构(查找快,增删慢)<线程不同步,当数组长度超过是,会重新new一个曾长了100%的数组>
LinkedList:底层使用的是链表结构(查找慢,增删快)
2 Collection和Map之间的区别?
Collection和Map都是容器,都是用来存放东西的,他们都是借口,他们的子类存放的内容不一样
Collection存放的是一个引用型元素的引用,Map存放的是键值对;
3 HashSet和TreeSet之间的区别?

HashSet:底层的数据结构是哈希表,是线程不同步的,
是通过元素的两个方法,hashCode()和Equals()来完成区别元素的唯一性,如果元素的hashCode相同,才会判断equals是否为true,
如果元素的hashCode不同不会判断equals方法,所以要添加到HashSet中的元素必须重写Object的hashCode()和equals()方法。
TreeSet:底层数据结构是:二叉树结构,可以对元素进行排序。
往TreeSet中存储的元素,必须具备可比较性,因为具有可比较性才能排序,
所以这些类型都必须实现java.lang.Compatable接口,并复写其compareTo方法,
或者定义一个比较器类,此类必须实现Java.Util.Comparatorl接口,
并实实现其comapre方法,在new TreeSet时创建一个词比较器类的对象作为参数传入TreeSet的构造函数
4 Collection和Collections的区别?
Collections是一个类时Collection体系中的工具类
Collection是一个借口,实现此接口的类能够存储引用型元素的引用,可以通过Collections类方便操作Collection的子类

5 Hashtable和HashMap之间的区别?
HashSet:底层的数据结构是哈希表,是线程不同步的,里面存放的是一个元素的引用
HashTable:底层是哈希表,存储的是键值对不可以存储null的键或值,是线程同步的,效率低 jdk1.0
作者: 黑马罗坚    时间: 2012-5-18 04:28
1 ArrayList、Vector、LinkedList之间的区别?
ArrayList 底层用数组实现  有指针 线程不安全 查找 修改速度快 删除插入速度慢 数组越大越慢
vector  底层数组和矢量表 被ArrayList替代了  它是线程安全的 SequenceInputstream需要用到它的返回枚举对象的功能  当然也可以不利用它直接搞个枚举对象 速度慢
linkedList 底层链表+数组实现  查询修改慢   添加删除块  用于队列和压栈数据结构中
3个都可重复添加元素 可迭代
2 Collection和Map之间的区别?
Collection 添加单个  map键值对  map没有迭代器要转换成set在用迭代器迭代  set集合底层调用的就是map集合 只有map没有迭代器应为它不需要只有LIST迭代器最多应为底层有数组
3 HashSet和TreeSet之间的区别?
hashSet底层哈希表 无序不可以重复 先根据hashcode判断 hashcode相同的话相同hashcode的进行equals判断 集合没办法进行排序
TreeSet  底层是2叉树  无序 添加时进行排序 小的放左边 大的放又边 比大的小比小的大 放在小的的又边  根据添加进来的元素实现Comparable接口 或者指定一个比较器  比较器实现接口comparator 如果没指定比较器元素由没实现接口那你这个集合永远只能添加一个元素 而且继续添加就报异常。。。。取出时从最小到最大取出
4 Collection和Collections的区别?
collection 基接口  该体系集合的模板  Collections集合工具把一些操作集合的功能代码封装在此 排序功能只能接受list体系的集合     
5 Hashtable和HashMap之间的区u别?
hashtable底层hash表 线程安全 map体系的 键值不能为null 数度慢  hashmap替代了hastable线程不安全的 键值可以为null
作者: HeiMaYSL    时间: 2012-5-18 10:09
1 ArrayList、Vector、LinkedList之间的区别?

   ArraList:底层数据结构是数组结构的,查询速度快,但插入和删除稍慢。因为,它是后来出了的,
             出现了迭代器后,ArrayList就取代了Vector。
   Vector:是老版本的操作类,现在几乎不用,它被ArrayList所替代,特点:安全,同步,速度稍慢。
   LinkedList:底层数据结构是链表,插入和删除快,但是,查找稍慢。和ArrayList的特点恰恰相反。

2 Collection和Map之间的区别?

   Collection:集合里面的元素是单个出现的,操作时,可以对所以进行操作。
   Map:集合里的元素是以键值对的形式出现的。  操作时,可以对键或者值进行操作,因为指的都是同一个元素。
3 HashSet和TreeSet之间的区别?
4 Collection和Collections的区别?

   Collection: 是集合的接口,算是一个小体系,子接口包括List ,Set,Map等集合。
   Collections:是一个工具类,里面有很多封装好的方法。这些方法可以对集合进行操作。
5 Hashtable和HashMap之间的区别?

   相同点:底层数据结构都是哈希表。
   不同点:
          HashTable:是同步的,null不可以作为键和值。
          HashMap: 是不同步的,null可以作为键和值。
             因为,HashTable不可以有null值,而HashMap中,可以有null值,所以,HashMap也几乎取代了HashTable。
作者: suiabing    时间: 2012-5-18 12:57
看视频吧 O(∩_∩)O~ http://v.youku.com/v_show/id_XMzkwODIzNzY0.html
作者: 云惟桉    时间: 2012-5-18 13:08
1、 ArrayList:底层是数据结构是线性表结构,查找快,插入和删除慢.
      LinkedList:底层数据结构是链表,查找慢,插入和删除较快。它有offer,peek,poll操作,可以模拟队列或者栈操作。
    Vector:跟ArrayList一样,被ArrayLis所取代。
2、HashSet:底层数据结构是哈希表,线程不同步;
     TreeSet:可以对set集合的元素进行排序。底层数据机构是二叉树,线程不同步。
3、Collection:集合接口,不能直接实例化对象,需要通过其子类来实例化对象。
   Collections:集合工具类。能够方便程序员对集合元素的各种操作。
4、HashTable:底层数据结构是哈希表,不允许存放空键与空值。线程同步,效率低。
   HashMap:底层数据结构是哈希表,允许存放空键与空值。线程不同步,效率高。
5、Collection:存放一组单值元素
   Map:以键值对形式存放元素,子类Properties用来存放字符串形式的键值对,还通常用来做简单行格式的配置文件
作者: 陌花╮有意、    时间: 2012-5-18 14:25
1 ArrayList、Vector、LinkedList之间的区别?
Arraylist数组实现 LinkedList链表 区别:Array 读快改慢 Linked 改快读慢
2.Collection和Map之间的区别?
Collection是存放单值 Map存放键值对
作者: 8161776    时间: 2012-5-19 00:05
ArrayList:底层是数组实现的,查找快,有get()方法,查找到指定位置比较块,插入和删除麻烦.
LinkedList:底层数据结构是链表,查找慢,插入和删除较快。
vector:Vector的方法都是同步的是线程安全的,而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。
HashSet:底层数据结构是哈希表,线程不同步;
TreeSet:可以对set集合的元素进行排序。底层数据机构是二叉树,线程不同步。

Collection:集合接口,不能直接实例化对象,需要要用多态来实例化对象。
Collections:集合工具类。能够减少代码的书写量。

HashTable:底层数据机构是哈希表,线程同步,效率低。
HashMap:底层数据机构是哈希表,线程不同步,效率高。

collection:存放一组单值元素
Map:以键值对形式存放元素





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2