今天去面试遇到的问题,请帮忙指点下! 题目:分别说明HashSet,HashMap,ArryList,LinkedList都应用在什么情况?这个真是把我问住了,想必面试的结果也很清楚了。其实这个问题我一直也很想知道,但总是没提到日程上来,今天就想请各位帮个忙让我搞明白他,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不好意思我只知道ArryList是用在数组里面的别的就不太清楚的 “HashMap,ArryList 我经常使用,它们正好符合我接触到的一些需求。HashSet,LinkedList 我从未使用过,我似乎未碰到需要使用它们的需求。如果你对它们有兴趣,给我一分钟,让我查一下文档。”哈,我想我会这么说。:) 那帮忙告诉我HashMap,ArryList在什么情况应用也行,那两个我再查. 分别说明HashSet,HashMap,ArryList,LinkedList都应用在什么情况?HashSet 和HashMap ArrayList 都属于迭代器吧。linkedList我没用过。不知道。。自已可以查一下HashMap基于哈希表的 Map 接口的实现。提供所有可选的映射操作,也就是get和putHashSet基于哈希表的Set接口的实现,和前者功能差不多.好像只是这个有顺序,也就是你放入的顺序不会改变..好像是这样前两者主要用于将一个实例放入里面。以后好取。。要覆盖hashcode方法ArrayList同样的..是一个集合数组,相当于一个数组吧。。他是基于List接口的实现..三者主要用于把很多对象放于一个集合.ArrayList在jsp中用得多。这个我经常用..用于把数据库的结果集放进去。然后在jsp上读出来.不知道这样解释对不对..凭个人经验..请高手指教..小弟也是初学者 首先你应该回答他们是一些collection接口的具体实现类,例如HashSet实现了Set接口Set接口、Map接口、List接口分别干什么的?一望便知。如果这个都不知道那最好别做程序员了。其次,你应该回答不同的实现是使用了不同的实现方式和算法。例如HashXXX使用了Hash表技术,ArrayList使用数组保存,而LinkedList是使用链表。如果不知道我在说什么,那赶紧补习数据结构的基本常识。再次,你应该回答它们有什么特性,分别用于什么场合。例如LinkedList在遍历的时候很高效。HashXXX都是无序的(楼上有人正好回答错误),之类的。 LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。 首先你要熟悉一下集合类的层次关系。简单点说JAVA里面把集合分为了两种类型list和map,list下面有分为list和set。collection是集合类,类似与数组一样的容器。 list是连表类,没有对里面的内容做限制。 set类似连表,但内容不可重复。map是键值对的集合(key-value)。再看下HashSet,HashMap,ArryList,LinkedList HashSet和HashMap都是以hash码为基础的。HashSet保证集合中的元素没有相同元素(相同的判断标准是hashCode相同并且equal判断相等)。HashMap保证集合中没有相同的key。 ArryList,LinkedList都是List的子类,使用方式和效果差不多,不同的是性能。ArrayList是以数组为基础的,遍厉效率高,但集合元素变动频繁时性能低。LinkedList是以连表为基础的,遍历效率不高,但是元素变动效率高,可以用来实现Stack和Queue. 其它还有一些集合类,自己看看文档 superman421(38度的雪)高手,学习! 看了这个问题,我想快速成为JAVA高手,是一个不能想象的事情了。而且还是自学 哎,真想找几个学java一起学习 什么时候该使用哪种数据结构,这些问题其实都在TIJ里面讲了,如果你认真地读了这本经典的话 数据结构其实不用读TIJ,是个计算机课程都会讲的(oa考证除外,呵呵) HashSet和HashMap都是以hash码为基础的。HashSet保证集合中的元素没有相同元素(相同的判断标准是hashCode相同并且equal判断相等)。HashMap保证集合中没有相同的key。 ArryList,LinkedList都是List的子类,使用方式和效果差不多,不同的是性能。ArrayList是以数组为基础的,遍厉效率高,但集合元素变动频繁时性能低。LinkedList是以连表为基础的,遍历效率不高,但是元素变动效率高,可以用来实现Stack和Queue. HashSet:元素无序,无重复,可用来放一个班的学生集合,HashMap:元素无序,无重复,可用来放商品和它们各自的数量ArrayList:可用来放变化不大的线性集合,元素之间有次序LinkedList:放经常变化的线性集合,元素之间有次序序 你去看文档吧在java.util.*包含你说的这几个。 简单一点说吧: ArrayList类:支持按需要增长的动态数组,一个ArrayList对象实际上就是指向一个可变长数组的引用. LinkedList类:构造一个空链表或者有给定集合链表. HashSet类:创建一个散列表存储的数据集合. HashMap类:也属于散列存储,但是和HashSet的区别在于,HashSet实现的是Set接口,而Set接口又是Collection接口的扩展,Set规定集合中不允许有相同的元素;而HashMap实现了Map接口,Map接口规定了这么一种集合:关键字/值一起存储. 另外,HashSet和HashMap中的元素存储都是无序的;ArrayList和LinkedList都实现了List接口,List接口规定集合里可以有相同的元素. 最基础的接口就是Collection,由它派生了三个接口:List、Set、SortedSet,其他的集合类在这三个接口基础上扩展. 要是你对链表和散列表的概念不大熟悉,可以翻翻数据结构的教材.最后,我认为迭代器也有必要弄清楚,特别是设计模式里有一章讲的迭代器模式有助于你理解~(讲得有点不清楚,倒过来看就好了) HashSet,HashMap,ArryList,LinkedList hash的2个用的少不太会``` ArrayList 这个通常在存储对象组的时候,在多用于读取的时候使用 LinkedList 这个因为在内存中是分散存在的,所以通常是多用于增加和删除的时候使用 不对的请大家指点 ArrayList是一种类似数组的形式进行存储,因此它的随机访问速度快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作,HashSet能快速定位一个元素,在Set中的对象元素不能重复,Map是一种把键对象和值对象进行关联的容器,多个键值可以映射到同一个值对象上 一般情况下,你只需要懂得HashMap和ArrayList就够了。至少我现在就没有碰到需要那两种数据结构的需求。即使你在java这个领域做很久,如果你没有接触过,也未必会懂一些比较偏门的东西。比如做jsp的,不一定非要熟悉applet,做rmi的可能不清楚什么是rmi。还有hibernate,sturts、界面编程、游戏开发等等。只要懂得一些基础,经常练练手就可以了。很多东西只是当你需要的时候才会接触,熟悉。如果面试你的是做业务的,他很快就能从你的回答出分辨出你的能力、水平和潜质。他不需要标准答案;如果面试你的是人事的,而且很明显他居然拿了一份标准答案,那么你最好还是走人,他们公司不一定有你适合的环境。 学习java.util.*;确实是个好类 servlet是不是线程安全的问题 HIbenate 关键字做为字段问题 这个怎么做?? 谁有《J2ee参考大全》一书!给我传一个,谢谢! 新手关于舍入误差的问题 帮我看一个swt的问题 如何非阻塞读取序列化对象 本人在着手开发一个JAVA编程工具,有问题向各位朋友请教? 有关内部类的疑问! 第一个java程序,怎么运行的时候老是报错? 动态加载问题,请哪位大虾指教!! 走过路过不要错过.!!!
HashSet 和HashMap ArrayList 都属于迭代器吧。linkedList我没用过。不知道。。自已可以查一下HashMap
基于哈希表的 Map 接口的实现。提供所有可选的映射操作,也就是get和put
HashSet
基于哈希表的Set接口的实现,和前者功能差不多.好像只是这个有顺序,也就是你放入的顺序不会改变..好像是这样前两者主要用于将一个实例放入里面。以后好取。。要覆盖hashcode方法
ArrayList
同样的..是一个集合数组,相当于一个数组吧。。他是基于List接口的实现..三者主要用于把很多对象放于一个集合.ArrayList在jsp中用得多。这个我经常用..用于把数据库的结果集放进去。然后在jsp上读出来.不知道这样解释对不对..凭个人经验..请高手指教..小弟也是初学者
Set接口、Map接口、List接口分别干什么的?一望便知。如果这个都不知道那最好别做程序员了。其次,你应该回答不同的实现是使用了不同的实现方式和算法。例如HashXXX使用了Hash表技术,ArrayList使用数组保存,而LinkedList是使用链表。如果不知道我在说什么,那赶紧补习数据结构的基本常识。再次,你应该回答它们有什么特性,分别用于什么场合。例如LinkedList在遍历的时候很高效。HashXXX都是无序的(楼上有人正好回答错误),之类的。
简单点说JAVA里面把集合分为了两种类型list和map,list下面有分为list和set。
collection是集合类,类似与数组一样的容器。
list是连表类,没有对里面的内容做限制。
set类似连表,但内容不可重复。
map是键值对的集合(key-value)。再看下HashSet,HashMap,ArryList,LinkedList
HashSet和HashMap都是以hash码为基础的。HashSet保证集合中的元素没有相同元素(相同的判断标准是hashCode相同并且equal判断相等)。HashMap保证集合中没有相同的key。
ArryList,LinkedList都是List的子类,使用方式和效果差不多,不同的是性能。ArrayList是以数组为基础的,遍厉效率高,但集合元素变动频繁时性能低。LinkedList是以连表为基础的,遍历效率不高,但是元素变动效率高,可以用来实现Stack和Queue.
其它还有一些集合类,自己看看文档
高手,学习!
ArryList,LinkedList都是List的子类,使用方式和效果差不多,不同的是性能。ArrayList是以数组为基础的,遍厉效率高,但集合元素变动频繁时性能低。LinkedList是以连表为基础的,遍历效率不高,但是元素变动效率高,可以用来实现Stack和Queue.
HashMap:元素无序,无重复,可用来放商品和它们各自的数量ArrayList:可用来放变化不大的线性集合,元素之间有次序
LinkedList:放经常变化的线性集合,元素之间有次序序
ArrayList类:支持按需要增长的动态数组,一个ArrayList对象实际上就是指向一个可变长数组的引用. LinkedList类:构造一个空链表或者有给定集合链表. HashSet类:创建一个散列表存储的数据集合. HashMap类:也属于散列存储,但是和HashSet的区别在于,HashSet实现的是Set接口,而Set接口又是Collection接口的扩展,Set规定集合中不允许有相同的元素;而HashMap实现了Map接口,Map接口规定了这么一种集合:关键字/值一起存储. 另外,HashSet和HashMap中的元素存储都是无序的;ArrayList和LinkedList都实现了List接口,List接口规定集合里可以有相同的元素. 最基础的接口就是Collection,由它派生了三个接口:List、Set、SortedSet,其他的集合类在这三个接口基础上扩展. 要是你对链表和散列表的概念不大熟悉,可以翻翻数据结构的教材.最后,我认为迭代器也有必要弄清楚,特别是设计模式里有一章讲的迭代器模式有助于你理解~(讲得有点不清楚,倒过来看就好了)
hash的2个用的少不太会```
ArrayList 这个通常在存储对象组的时候,在多用于读取的时候使用
LinkedList 这个因为在内存中是分散存在的,所以通常是多用于增加和删除的时候使用
不对的请大家指点
即使你在java这个领域做很久,如果你没有接触过,也未必会懂一些比较偏门的东西。比如做jsp的,不一定非要熟悉applet,做rmi的可能不清楚什么是rmi。还有hibernate,sturts、界面编程、游戏开发等等。只要懂得一些基础,经常练练手就可以了。很多东西只是当你需要的时候才会接触,熟悉。如果面试你的是做业务的,他很快就能从你的回答出分辨出你的能力、水平和潜质。他不需要标准答案;如果面试你的是人事的,而且很明显他居然拿了一份标准答案,那么你最好还是走人,他们公司不一定有你适合的环境。
java.util.*;
确实是个好类