arraylist和hashmap的区别,hashmap和sparsearray
List和ArrayList,Map和HashMap的区别
一个 ListMap变量的内部数据结构
[{F_CITY_NAME=徐州, CNT=1141}, {F_CITY_NAME=镇江, CNT=577}]
一个Map变量的内部数据结构
{泰州非边界=7, 宿迁无=26, 无锡省边界=6, 常州非边界=10, 淮安地市边界=70, 南京null=21}
在jsp页面中不能通过${list.size}取列表长度,而是
%@ taglib uri="" prefix="c"%
%@ taglib prefix="fn" uri=""%
list的长度是:${fn:length(list)}
List是接口,List特性就是有序,会确保以一定的顺序保存元素.
ArrayList是它的实现类,是一个用数组实现的List.
Map是接口,Map特性就是根据一个对象查找对象.
HashMap是它的实现类,HashMap用hash表实现的Map,就是利用对象的hashcode(hashcode()是Object的方法)进行快速散列查找.(关于散列查找,可以参看数据结构)
一般情况下,如果没有必要,推荐代码只同List,Map接口打交道.
比如:List list = new ArrayList();
这样做的原因是list就相当于是一个泛型的实现,如果想改变list的类型,只需要:
List list = new LinkedList();//LinkedList也是List的实现类,也是ArrayList的兄弟类
这样,就不需要修改其它代码,这就是接口编程的优雅之处.
另外的例子就是,在类的方法中,如下声明:
private void doMyAction(List list){}
这样这个方法能处理所有实现了List接口的类,一定程度上实现了泛型函数.
如果开发的时候觉得ArrayList,HashMap的性能不能满足你的需要,可以通过实现List,Map(或者Collection)来定制你的自定义类.
hashMap,Arraylist和set的区别
1、List,Set都是继承自Collection接口
2、List特点:元素有放入顺序,元素可重复
,Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
3、List接口有三个实现类:LinkedList,ArrayList,Vector
,Set接口有两个实现类:HashSet(底层由HashMap实现),LinkedHashSet
arraylist和hashmap的区别
首先就内部的元素而言,ArrayList储存的是单个对象,即 ArrayList al = new ArrayList(); 而HashMap储存的是一组一组的key和value,像: HashMap hm = newHashMap(); 这样。 另一个,就内部结构而言,ArrayList是有序的,而HashMap无序。
ArrayList与HashMap的用法
ArrayList跟HashMap是不同的集合
ArrayList是列表,集合中的对象是有序的.
HashMap是个映射表,集合中的对象由键值跟存放的对象组成.
HashMap的put是向映射表中添加数据,putAll是将一个映射表全部添加到当前映射表.
比如一个队伍你可用ArrayList,其中存放每个人,你可以通过排的位置找人,踢人.
一个价表你就需要用HashMap,键值是物器名,值是物器价格.
下面是个简单的例子:
HashMap jiageBiao = new HashMap();
jiageBiao.put("鞋子", new Integer(20));
jiageBiao.put("衣服", new Integer(120));
HashMap jiageBiao2 = new HashMap();
jiageBiao2.put("裤子", new Integer(130));
jiageBiao2.putAll(jiageBiao);//把jiageBiao中的数据都添加到JiageBiao2上
Integer xieziJiage = (Integer)jiageBiao.get("鞋子");