首先这个[]也就数组我相信写过程序的就知道。
然后说说Java的集合框架,最底层的是个Collection接口,然后其上有List,Set,Map这3中集合。
List有ArrayList以及LinkedList,其中ArrayList可以看作一个动态扩展的数组。而LinkedList其实就是一个链表。所以一般来说ArrayList不适合进行大量的插入以及删除操作LinkedList就比较适合,但是ArrayList的get操作和append操作一般来说效率要比LinkedList高。其实LinkedList虽然可以进行get(i)的操作,但是最好不要用。
Set有TreeSet以及HashSet这两种,Set和List的区别其实就在于没有随机访问的操作,也就是没有get(i)的操作,而且再Set中同样的指只能出现一次。TreeSet其实是个红黑树的实现,也就是个平衡的2叉树,如果我记得没错效率应该是nlog(n).而HashSet其实是个Hash表的实现,也有中文翻译成散列的。效率应该是常数时间的。TreeSet是个排序了的树,所以可以用来处理一些排序的操作。如果对效率有特别要求可以使用HashSet。
Map中同样也有TreeMap以及HashMap,其实Map和Set的区别也就是Map是个键,值对。
至于Vector以及HashTable其实是Java比较老的实现,都是Thread Safe的,Vector可以等同ArrayList而HashTable可以等同于HashMap。
然后说说Java的集合框架,最底层的是个Collection接口,然后其上有List,Set,Map这3中集合。
List有ArrayList以及LinkedList,其中ArrayList可以看作一个动态扩展的数组。而LinkedList其实就是一个链表。所以一般来说ArrayList不适合进行大量的插入以及删除操作LinkedList就比较适合,但是ArrayList的get操作和append操作一般来说效率要比LinkedList高。其实LinkedList虽然可以进行get(i)的操作,但是最好不要用。
Set有TreeSet以及HashSet这两种,Set和List的区别其实就在于没有随机访问的操作,也就是没有get(i)的操作,而且再Set中同样的指只能出现一次。TreeSet其实是个红黑树的实现,也就是个平衡的2叉树,如果我记得没错效率应该是nlog(n).而HashSet其实是个Hash表的实现,也有中文翻译成散列的。效率应该是常数时间的。TreeSet是个排序了的树,所以可以用来处理一些排序的操作。如果对效率有特别要求可以使用HashSet。
Map中同样也有TreeMap以及HashMap,其实Map和Set的区别也就是Map是个键,值对。
至于Vector以及HashTable其实是Java比较老的实现,都是Thread Safe的,Vector可以等同ArrayList而HashTable可以等同于HashMap。
解决方案 »
- 多线程的yield()是什么意思,有什么用法??
- 小型管理系统的问题
- socket 长连接怎么写
- 能运行HelloWorld但是不能运行Receive呢,提示:Exception in thread "main" java.lang.NoClassDefFoundError(60分!)
- (eclipse版人气太差,借宝地一用)俺用eclipse做了个tomcat 的项目.俺想进行调试,可打了断点后程序还是停不下来!
- javac的属性有什么含义?
- 求java读写XML的例子。谢谢。给分100。
- 问一下在那里可以下到关于java的帮助,类似MSDN的那种帮助!谢谢了
- 如何对记事本中的java程序进行编译和执行?
- 封装google -- protobuf
- ***问个小问题:如何使按钮保持被按下的状态?
- 感谢xu_kewei提供的服务器,请接分
这些都是容器的概念:
简单如下:
Utilities 分为: Collection and Map
Collection 分化为 List,Set.
List --->ArryList,LinkedList,Vector,Stack
Set ---->HastSet,TreeSet.
Map 分化为;HashMap,TreeMap,HashTable.其中 Vector,Stack,HashTable 是java 1.0/1.1的东东,在java2中基本上很少使用了。具体区别可楼上兄弟的,在就是看TIJ 2ed. charpter 9. 方便的话可以下个电子版的。
这一句的理解是错误的。Collection 和Map 是没什么关系的。不存在谁继承或者谁实现了谁。
谢谢,谢谢,谢谢哥们
你对这些集合的分类讲的我明白一些了,能不能再讲一讲他们在内存分配上的不同优缺点(或者是什么集合只能保存同种类对象等等),还有可不可以举一些具体什么情况下使用什么集合的例子,俺的基础比较差,对树啊,链表的理解只有那么一点点.
谢谢.
谢谢
不过真的很失败,我看过了,感觉一片茫然,干吗提供那么多集合,害的我都不知道该用哪个!
过两天再看一遍!
我现在感觉比较郁闷,so 150分
唉,在学校时只顾玩了,现在开始发奋!