list map等
来源:互联网 发布:基金从业考试题型 知乎 编辑:程序博客网 时间:2024/05/23 18:31
List Map区别
Collection 是对象集合, Collection 有两个子接口 List 和 Set
List 可以通过下标 (1,2..) 来取得值,值可以重复
而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的
Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类
HashTable 是线程安全的,不能存储 null 值
HashMap 不是线程安全的,可以存储 null 值
Collection接口中有两个常用的子接口:List(列表),Set(集)。
List:可存放重复元素,元素存取是有序的。
ArrayList:底层为数组结构。查询速度快。增删稍慢。线程不同步。
LinkedList:底层为链表结构。增删速度快,查询稍慢。线程不同步
Vector:底层为数组结构。线程同步。被ArrayList替代了。因为效率低。
Set:不可以存放重复元素,元素存取是无序的
HashSet:数据结构是哈希表。线程不同步。hashCode和equals
TreeSet:可以对Set集合中的元素进行排序,数据结构为二叉树
实现Comparable接口,覆盖compareTo(Object obj)方法
实现Comparator接口,覆盖compare(Object o1,Object o2)方法
Map:存储键值对,键不可以重复,值可以重复。
取出map集合元素的两种方式方法keySet()和entrySet()
Hashtable: 数据结构为哈希表,不可以存入null键null值,线程同步。
HashMap:数据结构为哈希表,允许使用 null 值和 null 键,线程不同步。
TreeMap:数据结构为二叉树。线程不同步。
用于给map集合中的键进行排序(排序方法和TreeSet一样,实现comparable和comparator两个接口即可)。
注:其实Set底层就是使用了Map集合
entryset遍历hashmap
Mapmap =new HashMap();
map.put("姓名","alexander");
map.put("年龄","14");
map.put("性别","男");
System.out.println(map);
Iterator it =map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Entry) it.next();
Object key =entry.getKey();
Object value = entry.getValue();
map.put("姓名","alexander");
map.put("年龄","14");
map.put("性别","男");
System.out.println(map);
Iterator it =map.entrySet().iterator();
while(it.hasNext()){
Map.Entry entry = (Entry) it.next();
Object key =entry.getKey();
Object value = entry.getValue();
System.out.println(key+":::"+value);
因为hashmap无序,用迭代器迭代遍历
keyset entryset keyset只遍历key键集 entryset通过map.entry(映射关系)遍历键值对。
Collection 接口的接口 对象的集合
├ List 子接口 按进入先后有序保存 可重复
│├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全
│├ ArrayList 接口实现类 数组 随机访问 没有同步 线程不安全
│└ Vector 接口实现类 数组 同步 线程安全
│ └ Stack
└ Set 子接口 仅接收一次,并做内部排序
├ HashSet
│ └ LinkedHashSet
└ TreeSet
public static void method_2(Map<Integer,String> map){ //第一个返回null,存进去的都是返回前一个 map.put(8,"zhaoliu");//返回Null map.put(2,"zhaoliu");//返回zhaoliu map.put(7,"xiaoqiang");//返回zhaoliu map.put(6,"wangcai");//返回wangcai System.out.println("*********"); System.out.println(map.put(5,"wangcai5")); System.out.println(map.put(5,"wangcai5")); System.out.println(map); System.out.println("*********"); //Collection!!!1 Collection<String> values = map.values(); Iterator<String> it2 = values.iterator(); while(it2.hasNext()){ //遍历拿到的是Vaule!!! System.out.println("1111111111111:" + it2.next()); } /* * 通过Map转成set就可以迭代。 * 找到了另一个方法。entrySet。 * 该方法将键和值的映射关系作为对象存储到了Set集合中,而这个映射关系的类型就是Map.Entry类型(结婚证) * * 允许重复 */ //Set<Map.Entry<Integer, String>>!!!2 Set<Map.Entry<Integer, String>> entrySet = map.entrySet(); Iterator<Map.Entry<Integer, String>> it = entrySet.iterator(); while(it.hasNext()){ //遍历拿到的是关系!!! Map.Entry<Integer, String> me = it.next(); Integer key = me.getKey(); String value = me.getValue(); System.out.println(key+"::2222222222::"+value); } //取出map中的所有元素。 //原理,通过keySet方法获取map中所有的键所在的Set集合,在通过Set的迭代器获取到每一个键, //在对每一个键通过map集合的get方法获取其对应的值即可。 //Set<Integer> keySet!!!3 Set<Integer> keySet = map.keySet(); Iterator<Integer> it21 = keySet.iterator(); while(it21.hasNext()){ //遍历拿到的是Key!!! Integer key = it21.next(); String value = map.get(key); System.out.println(key+":3333333333:"+value); } } public static void method(Map<Integer,String> map){//学号和姓名 // 添加元素。 System.out.println(map.put(8, "wangcai"));//null System.out.println(map.put(8, "xiaoqiang"));//wangcai 存相同键,值会覆盖。 map.put(2,"zhangsan"); map.put(7,"zhaoliu"); //删除。 // System.out.println("remove:"+map.remove(2)); //判断。 // System.out.println("containskey:"+map.containsKey(7)); //获取。 System.out.println("get:"+map.get(6)); System.out.println(map); Outer.Inner.show(); } }
阅读全文
0 0
- Map、List等集合
- list map等
- JSTL遍历数组,List,Set,Map等
- JSTL遍历数组,List,Set,Map等
- JSTL遍历数组,List,Set,Map等
- struts2 表单数据绑定map、list等
- JSTL遍历数组,List,Set,Map等
- JSTL遍历数组,List,Set,Map等
- Java类集(List、Set、Map等)
- Java集合框架List,Map,Set等
- json字符串转list、map等结构
- Map对象与JavaBean互转,List<Map>与List<JavaBean>互转等
- 使用遍历数组、Collection、List、Set、Map等
- List,set,Map 的用法和区别等
- List,set,Map 的用法和区别等 [转]
- (转)map,set,list,等JAVA中集合解析(了解)
- axis 传输 简单对象,复杂对象,List,Map等
- map,set,list,等JAVA中集合解析(了解)
- 源码编译-PHP
- Morris二叉树遍历算法
- 使用springmvc 实现重定向
- java新人浅谈对于ArrayList的一点理解
- 【PyQt】Qt designer中Stylesheet使用的注意事项
- list map等
- activiti 获取流程图
- pecemaker+heartbeat高可用
- 【设计模式】Chain of Responsibility 责任链式模式
- 最大流算法魔板
- POJ
- 几种加密方式
- 通讯录
- tomcat+memcahed 缓存