List,Set,Map的相关总结

原文网址:https://blog.csdn.net/u014209975/article/details/52414697

list参考博客:https://blog.csdn.net/bjzhuhehe/article/details/72230559

map参考博客:https://www.cnblogs.com/jiuyi/p/5034872.html

https://blog.csdn.net/hero_cheng/article/details/51285984

 

知识提示: LinkedList的特有方法(本身定义的方法)如:addFirst()、addLast()、getFirst()、getLast()、removeFirst()、removeLast()等

ArrayList与linkedList在性能上各有优缺点,都有各自的地方,

1.对ArrayList和LinkedList而言,在列表中末尾添加一个元素所花的开销是固定的

2.在ArrayList中间插入一个元素或删除一个元素意味着整个列表中剩余的元素都会移动,而LinkedList的中间插入或删除一个元素的开销是固定的

3.LinkedList不支持高效的随机访问

 可以这样说:当操作是在一列数据后面添加数据而不是在前面或中间,并且是随机访问其中元素时,使用arrayList会提供比较好的性能;当你操作是在一列数据的前面或中间添加或删除数据,并不是按照顺序访问其中的元素,就应该使用LinkedList了

 

 

 

 Map 接口提供三种collection 视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection 视图上返回其元素的顺序。某些映射实现可明确保证其顺序,如 TreeMap 类;另一些映射实现则不保证顺序,如HashMap 类。

1、HashMap

特点:保存元素时先进后出、无序性;查询效率比较高;key-value可以为null,但最多只能为一个null;不支持线程同步,即可以有多个线程同时写HashMap,可能导致数据不一致,如果需要同步可以使用Collection的synchronizedMap方法使其同步。

2.LinkedHashMap

特点:LinkedHashMap内部是双向链表结构,保存了元素插入的顺序,Iterator遍历元素时按照插入的顺序排列,支持线程同步

3、TreeMap

特点:保存元素key-value不能为null,允许key-value重复;遍历元素时随机排列。

 常用操作说明

  void clear()

  从此映射中移除所有映射关系(可选操作)。

  boolean containsKey(Object key)

  如果此映射包含指定键的映射关系,则返回 true。

  boolean containsValue(Object value)

  如果此映射将一个或多个键映射到指定值,则返回 true。

  Set<Map.Entry<K,V>> entrySet()

  返回此映射中包含的映射关系的 Set 视图。

  boolean equals(Object o)

  比较指定的对象与此映射是否相等。

  V get(Object key)

  返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。

  int hashCode()

  返回此映射的哈希码值。

  boolean isEmpty()

  如果此映射未包含键-值映射关系,则返回 true。

  Set<K> keySet()

  返回此映射中包含的键的 Set 视图。

  V put(K key, V value)

  将指定的值与此映射中的指定键关联(可选操作)。

  void putAll(Map<? extends K,? extends V> m)

  从指定映射中将所有映射关系复制到此映射中(可选操作)。

  V remove(Object key)

  如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。

  int size()

  返回此映射中的键-值映射关系数。

  Collection<V> values()

  返回此映射中包含的值的 Collection 视图。

 

Map的一般用法

1.声明一个Map :

Map map = new HashMap();

2 .向map中放值 ,注意: map是key-value的形式存放的,如:

map.put("sa","dd");

3 .从map中取值 :

String str = map.get("sa").toString,

结果是: str = "dd'

4 .遍历一个map,从中取得key和value :

Map m= new HashMap();

for(Object obj : map.keySet()){

Object value = map.get(obj );

}

循环List列表的三种方式

使用普通for循环,用get方法获取;

使用Iterator迭代器,使用next方法遍历;

使用增强for循环,直接输出!  由此可见第三种方法是最方便,最简洁的!

(通过把列表转化为数组(list.toarray),再从遍历数组中也是可以获取的)

遍历map的三种方式

1、将map 集合中所有的键取出存入set集合。
        Set<K> keySet()   返回所有的key对象的Set集合
                             再通过get方法获取键对应的值。
2、 values() ,获取所有的值.
        Collection<V> values()不能获取到key对象
3、 Map.Entry对象  推荐使用   重点
        Set<Map.Entry<k,v>> entrySet()
将map 集合中的键值映射关系打包成一个对象
Map.Entry对象通过Map.Entry 对象的getKey,
getValue获取其键和值。
详细实例:https://www.cnblogs.com/zhongmingyuan/p/4911706.html

待更……

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值