Java集合框架知识点总结
Java集合框架总结
本文对java集合的知识点做概述性的总结,后面会继续对各个实现类代码实例做总结。
一.Collection Framework(框架)集合框架是一个统一的架构,用来表示和操作集合. 集合框架主要是由接口,抽象类和实现类构成. 接口:蓝色;实现类:红色Collection |_____Set(HashSet) | |_____SortedSet(TreeSet) |_____List(LinkedList,ArrayList)
Collection:集合层次中的根接口,JDK没有提供这个接口的实现类。 Set:不能包含重复的元素,子接口SortedSet是一个按照自然升序排列的元素的Set。有个特例,HashSet实现类能支持数据重复。 List:可以包含重复的元素,是一个有序的集合,提供了按索引访问的方式,有次序,位置不改变。
(一)Collection接口常用的方法:
boolean
add(Eo) 确保此 collection 包含指定的元素(可选操作)。
boolean
contains(Objecto) 如果此 collection 包含指定的元素,则返回true。
boolean
remove(Objecto) 从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
int
size() 返回此 collection 中的元素数。
Object[]
toArray() 返回包含此 collection 中所有元素的数组。
Iterator
iterator() 返回在此 collection 的元素上进行迭代的迭代器。
List接口特有方法:
get(int index) 返回列表中指定位置的元素。
SortedSet接口特有方法:
first() 返回此有序集合中当前第一个(最小的)元素。
last() 返回此有序集合中最后一个(最大的)元素。
(二)集合框架中的实现类.
1.ArrayList类(java最最重要的集合类)
本质:我们可以将其看作是能够自动增长容量的数组,实际是采用对象数组实现的。自动增长容量就是当数组不够的时候,再定义更大的数组,然后将数组元素拷贝到新的数组.
2.LinkedList类LinkedList是采用双向循环链表实现的. 利用LinkedList实现栈(stack),队列(queue),双向队列(double-ended queue)
LinkedList常用方法 void addFirst(Object o) void addLast(Object o) Object getFirst() Object getLast() Object remove(int index) boolean remove(Object o) Object removeFirst() Object removeLast() isEmpty()判断是否为空
3.HashSet HashSet实现了Set接口的hash table(哈希表),依靠HashMap来实现. 应该为要存放到散列表的各个对象定义hashCode()和equals(). 因为实现了set接口所以不能有重复的元素..
常用方法 boolean add(Object o) HashSet类实现了Set接口,所以不能有重复的元素.
4.TreeSet:TreeSet是依靠TreeMap来实现的. TreeSet是一个有序集合,TreeSet中元素将按照升序排列, 缺省是按照自然排序进行排列,意味着TreeSet中元素要实现Comparable接口. 我们可以在构造TreeSet对象时,传递实现了Comparator接口的比较器对象.
HashSet是基于Hash算法实现的,其性能通常优于TreeSet. 通常都应该使用HashSet,在需要排序的功能时,才使用TreeSet. **
二.Map
Map---(HashMap) |_____SortedMap(TreeMap)
Map:存储的是key-value对(键值对),不能包含重复的key,可以有重复的value。子接口SortedMap是一个按升序排列key的Map。
Map接口实现类:
(一)HashMap:
对key进行散列.实现了所有hashmap操作,允许空值和空键.
map接口没有add()方法. 要放置元素通过put()方法.,放置相同的key值时会覆盖掉第一个value值
常用的方法.
Object put(Object key,Object value) 获取元素的时候 Object get(Object key) 通过键获取值 Hash表,通过键计算出相对应的存储位置的值,并输出. Set entrySet() 返回一个键值对视图类型是Set. 返回的Set集合当中每一个对象都是一个Map.Entry对象. Map.Entry是一个静态的接口. 接口中提供了常用方法 Object getKey() Object getValue()
(二)TreeMap:
实现了sorted Map接口的类 TreeMap按照key进行排序. 类似HashMap用法 ********************** HashMap和TreeMap比较和Set类似,HashMap的速度通常都比TreeMap快, 只有在需要排序的功能的时候,才使用TreeMap.
三.泛型
(一)泛型的定义
即“参数化类型”。顾名思义,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),
然后在使用/调用时传入具体的类型(类型实参)。
采用泛型写法后,通过List,直接限定了list集合中只能含有String类型的元素为此时,集合能够记住元素的类型信息,编译器已经能够确认它是String类型了。
结合上面的泛型定义,我们知道在List中,String是类型实参,也就是说,相应的List接口中肯定含有类型形参。且get()方法的返回结果也直接是此形参类型(也就是对应的传入的类型实参)。
(二)泛型的应用
泛型主要的应用还是结合java集合类的使用,在后面的一系列总结会有对泛型的总结。
四.迭代器:Iterator接口
Collection提供了一个iterator()方法,可以返回一个迭代器,迭代器是指向两个元素之间的指针。凡是继承自Collection的接口或间接的实现类都有这个方法. (一)迭代器3个方法 1.hasNext() 2.next()
3.remove()
hasNext()判断是否有更多的元素,如果有返回true
next()返回的是下一个对象值 remove()方法remove()方法需要删除上一个返回的元素,需要先调用next()方法后在用remove(),返回的列表有时不一定真正实现remove()方法,根据需要决定是否实现. (二)迭代器的使用场合
迭代器能用于查找和删除。用while(。hasNext())判断是否有对象元素,如果有的话用。Next方法接收对象 但是迭代器最主要的功能还是用来删除list里面某个对象的值,用到。Remove,使用其他方法删除list里面的值,都有可能会报错!
五.Collections工具类 Collections类不同于Collection类 (一)Collections.sort(List list)
主要是对列表排序. static void sort(List list)方法是按升序对指定列表排序. 自然排序法. 这里List的泛型类要实现comparable接口的实现方法compareTo(Object o1).
(二)Collections.sort(List list,C c)排序的时候可以传递一个比较器. 类C要实现Comparator接口.里面的实现方法intcompare(Object o1,Object o2) 实现一个比较器. 比较器总是和一个特定的类相关.
本文主要是对集合部分常用的知识点做概述,后面还会详细讲解各个知识点的理解和应用。
集合主要能掌握ArrayList实现类就基本能解决大部分问题了,这也是我们要学习集合的重点。HashMap也会用到一点。其他的知识都用得很少。
相关阅读
-
2022年11月新闻热点大事件-国内外时事政治汇总最新(实时更新)
社会上发生的热点事件与我们的生活息息相关,关注这些新闻热点,对新闻时事进行积累,有利于同学们政治的学习;而且这些时事新闻的素材如用在语文作文中,会让作文的论证更加充分...
-
宝妈带娃照样可以兼职挣钱的10种方法!最牛的还是跟着马爸爸挣互联网的钱!!!
自从生了二胎,容儿深切地体会到宝妈的生活。宝妈最大的问题就是没固定的时间工作,因为要看孩子,一切都是以孩子为中心。但是优点就是有时间,只是时间都是碎片化的...
-
时政新闻摘抄2023年有哪些?2023年新闻热点事件及感悟又有哪些?2023时事热点能够帮助同学们积累素材,新闻热点事件合理使用在作文中能够使得文章更加有深度,能拿到更高的分...
-
民小编说本文基于单元整体教学中学科大概念缺失、驱动性问题缺乏、一体化评价缺位三大实施误区的分析,提出三种实践策略:挖掘主题大概念,明确单元教学目标;应用项目式学习...
-
上班不易,盘点普通人可做的10个赚钱副业,内附方法,建议收藏
上班不易,副业成刚需,为了找到靠谱的副业变现方法,我筛选了100多个副业项目,总结出这10个现在看来还能赚到钱的副业,如果你正在苦于找不到靠谱的副业,那么这篇文章一定要认真看......
-
早上好!醒来了,就要觉知。一切发生,已成定局!事实无不通,只有想不通!只要还没有发生的,就是你还不需要的。...
-
很想走在江南的夜晚,灯火阑珊,人也阑珊。不语,只是看一看如梦的江南,只是念一念美好的从前。我还是很喜欢你,就是不讲道理。一寸相思情未老,朱颜未改雨逍遥。你心如野马,我泪落成花......
-
成为搞笑博主后,我给身边人带去温暖和快乐,也让自己实现经济自由
大家好呀!我叫小曾,想当年,我可是同学、老师、亲人们眼中的开心果,自从搞笑女这个称呼出现之后,没想到,现在他们都喊我搞笑女。其实,我完全不介意...
-
一部小说。主角叫大嘴,猴子,非凡的鬼故事小说~讲的是大嘴在殡仪馆工作的故事。主角就是他们三兄弟。目睹殡仪馆之奇闻怪事不明白啊==!殡仪馆之奇闻怪事有语音小...
-
仙林校区广播台节目介绍:固定节目:周一至周六:7:00-7:30转播中央人民广播电台《新闻和报纸摘要》自办节目:周一12:00~12:30午间节目——尖峰体坛主播:袁佳...
-
《活着》歌曲原唱:郝云填词:郝云谱曲:郝云每天站在高楼上看着地上的小蚂蚁他们的头很大他们的腿很细他们拿着苹果手机他们穿着耐克阿迪上班就要迟到了他们很着急我那可怜的吉普车...
发表评论
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件举报,一经查实,本站将立刻删除。