Java特性-Collection和Map
创建博客的目的主要帮助自己记忆和复习日常学到和用到的知识;或有纰漏请大家斧正,非常感谢!
之前面试,被问过一个问题:List和Set的区别。
主要区别很明显了,两者都是数组形式存在的,继承了Collection,最大的却别在于:Set中不可以出现重复元素,而List是没有限制的。
连带着想好好了解下Java中两个类:Collection和Map,搜集了重点知识如下:
类层级关系如下,
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection和Map都是接口,平时较为常用的几个明星类都在这里衍生了。
LinkedList,平时用到的不多,网络一下,常用两个用途:栈和队列;
如创建一个对象:LinkedList lklt= new LinkedList();
操作该对象:
//入栈
lklt.addFirst(obj);
//出栈并删除元素
lklt.removeFirst();
//入队
lklt.add(obj);//同addLast(obj);
//出队并删除元素
lklt.removeFirst();
ArrayList,较为常用的对象了,平时要保存个数组动辄就new一个出来。需注意使用场景:
- 一般顺序遍历情况下使用ArrayList,但注意构造函数中设置初始大小
- 尽量不对ArrayList进行插入或删除操作(删除尾部除外),若有多次删除/插入操作又有随机遍历的需求,可以再构建一个ArrayList,把复合条件的对象放入新ArrayList,而不要频繁操作原ArrayList
- 经常有删除/插入操作而顺序遍历列表的情况下最适合使用LinkedList
网络大牛总结如下:
Map,开发必不可少,经常替代Bean,减少开发量。
参考别人的例子,遍历:
第一种:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
效率高,以后一定要使用此种方式!
第二种:
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
效率低,以后尽量少使用!
Java特性-Collection和Map的更多相关文章
- java中collection、map、set、list简介 (转)
Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元 ...
- java基础- Collection和map
使用构造方法时,需要保留一个无参的构造方法 静态方法可以直接通过类名来访问,而不用创建对象. -- Java代码的执行顺序: 静态变量初始化→静态代码块→初始化静态方法→初始化实例变量→代码块→构造方 ...
- 【Java】Collection与Map接口总结
Collection -----List -----LinkedList 非同步 ----ArrayList 非同 ...
- 「 深入浅出 」java集合Collection和Map
本系列文章主要对java集合的框架进行一个深入浅出的介绍,使大家对java集合有个深入的理解. 本篇文章主要具体介绍了Collection接口,Map接口以及Collection接口的三个子接口Set ...
- Java中Collection、Map常用实现类研究分析
接口/实现类 描述 key是否可为null 为null是否报错 key是否重复 key重复是否报错 key是否和添加一致 是否线程安全 List 一组元素的集合 ArrayList 基于数组存储,读取 ...
- 【转】java 容器类使用 Collection,Map,HashMap,hashTable,TreeMap,List,Vector,ArrayList的区别
原文网址:http://www.360doc.com/content/15/0427/22/1709014_466468021.shtml java 容器类使用 Collection,Map,Hash ...
- 理解java集合——集合框架 Collection、Map
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set ...
- Java 8中Collection转为Map的方法
Java 8中java.util.stream.Collectors提供了几个方法可用于把Collection转为Map结构,本文记录了个人对其中三个的理解. Method Return Type g ...
- Java Collection或Map的同步
新集合也提供了能防止多个进程同时修改一个容器内容的机制.若在一个容器里反复,同时另一些进程介入,并在那个容器中插入.删除或修改一个对象,便会面临发生冲突的危险.我们可能已传递了那个对象,可能它位于我们 ...
随机推荐
- iOS 圆的放大动画效果
第一步:创建一个View,将这个View添加到当前的控制器 如: CGFloat timeW = self.view.bounds.size.width; timeAnimation * timean ...
- python 04
面向对象 __init__ 方法在类的一个对象被建立时, 马上运行. 这个方法可以用来对你的对象做一些你希望的初始化. python中所有的类成员(包括数据成员)都是公共的, 所有的方法都是有效的. ...
- (十二)select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型:int select(int maxfd,fd_set *rdset ...
- Observer,Observable实现观察者模式
(#)个人对于观察者的理解:观察者与发布订阅模式是非常的相似的,例如当多个威信使用者订阅了同一个主题之后,那么这个主题就是一个被观察者,而这些用户就是观察 者,当这个主题更新了新的内容以后,就要通知所 ...
- java中的IO操作
IO流是用来处理设备之间的数据传输,Java对数据的操作是通过流的方式进行,而操作流的对象都封装到java.io包中.根据操作数据的种类可以把IO流分为字节流(InputStream,OutputSt ...
- Bible
001 Love your neighbor as yourself. 要爱人如己.--<旧·利>19:18 002 Resentment kills a foo ...
- 解决VS2012编写JQuery代码不能智能提示的问题(其他js库的代码提示设置估计类似)
VS默认设置下编写jQuery代码是这样的: 解决办法: 1.在项目的"管理NuGet程序包"中安装JQuery: 2.打开:工具 -> 选项 -> 文本编辑器 -&g ...
- 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
20145218&20145240 <信息安全系统设计基础>实验二 固件设计 实验报告链接:http://www.cnblogs.com/20145240lsj/p/6035512 ...
- chrome经常崩溃解决过程
之前chrome常崩溃,也没有找到原因,就将就着用吧,一直用到今天,今天连续几次崩了,突然想到,难道是因为我访问的域名没有解析(能想到这个,是因为今天分配公司域名测试的时候常输错),于是就输入一个不存 ...
- 懒加载实现的分页&&网站footer自适应
最近在做手机端,发现下拉刷新和上拉加载的jq控件很少而且自我感觉不好用,比如iscroll之类-- 然后自己写了个懒加载的,也很简单,最基础的代码[不喜勿喷,但蛮实用的] wap手机端懒加载分页: 用 ...