|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。
Java汇合工具包位于Java.util包下,包括了良多经常使用的数据布局,如数组、链表、栈、行列、汇合、哈希表等。进修Java汇合框架下大抵能够分为以下五个部分:List列表、Set汇合、Map映照、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。
Java汇合类的全体框架以下:
从上图中能够看出,汇合类次要分为两年夜类:Collection和Map。
Collection是List、Set等汇合高度笼统出来的接口,它包括了这些汇合的基础操纵,它次要又分为两年夜部分:List和Set。
List接口一般暗示一个列表(数组、行列、链表、栈等),个中的元素能够反复,经常使用完成类为ArrayList和LinkedList,别的另有不经常使用的Vector。别的,LinkedList仍是完成了Queue接口,因而也能够作为行列利用。
本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
Set接口一般暗示一个汇合,个中的元素不同意反复(经由过程hashcode和equals函数包管),经常使用完成类有HashSet和TreeSet,HashSet是经由过程Map中的HashMap完成的,而TreeSet是经由过程Map中的TreeMap完成的。别的,TreeSet还完成了SortedSet接口,因而是有序的汇合(汇合中的元素要完成Comparable接口,并覆写Compartor函数才行)。
我们看到,笼统类AbstractCollection、AbstractList和AbstractSet分离完成了Collection、List和Set接口,这就是在Java汇合框架顶用的良多的适配器计划形式,用这些笼统类往完成接口,在笼统类中完成接口中的多少或全体办法,如许上面的一些类只需间接承继该笼统类,并完成本人必要的办法便可,而不必完成接口中的全体笼统办法。
Map是一个映照接口,个中的每一个元素都是一个key-value键值对,一样笼统类AbstractMap经由过程适配器形式完成了Map接口中的年夜部分函数,TreeMap、HashMap、WeakHashMap等完成类都经由过程承继AbstractMap来完成,别的,不经常使用的HashTable间接完成了Map接口,它和Vector都是JDK1.0就引进的汇合类。
Iterator是遍历汇合的迭代器(不克不及遍历Map,只用来遍历Collection),Collection的完成类都完成了iterator()函数,它前往一个Iterator对象,用来遍历汇合,ListIterator则专门用来遍历List。而Enumeration则是JDK1.0时引进的,感化与Iterator不异,但它的功效比Iterator要少,它只能再Hashtable、Vector和Stack中利用。
Arrays和Collections是用来操纵数组、汇合的两个工具类,比方在ArrayList和Vector中大批挪用了Arrays.Copyof()办法,而Collections中有良多静态办法能够前往各汇合类的synchronized版本,即线程平安的版本,固然了,假如要用线程平安的分离类,首选Concurrent并发包下的对应的汇合类。
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. |
|