java集合框架03
来源:互联网 发布:光怪兽普利茨墨淘宝 编辑:程序博客网 时间:2024/06/05 00:41
Java集合框架图
今天给大家介绍一下map接口
1.map
特点:无序,以键值对的形式存放数据,键不能重复,值可以重复,键如果相同,值会覆盖
map.clear()清除所有元素map,containskey是否包含map,isEmpty是否为空map.keyset获得保留所有键的set集合
/**
* map接口
* @author King
*
*/
public class Demo2 {
public static void main(String[] args) {
Map<String, String> map=new HashMap<String, String>();
map.put("zs", "张三");
map.put("ls", "李四");
map.put("ww", "王五");
map.put("zs", "张三三");
// System.out.println(map.size());
//变量map集合
//1.foreach
for(String key:map.keySet()){
System.out.println("key:"+key+"\t "+"value:"+map.get(key));
}
//2.如何快速的遍历map集合
for(Map.Entry<String, String> entry:map.entrySet()){
System.out.println(entry.getValue());
}
}
}
1.1 HashMap
HashMap 允许null值和null键. 它的优点是可以快速的帮我们查找对象,缺点是我们无法控制对象的顺序.
1.2 Hashtable
1.3 TreeMap
TreeMap 的键是经过排序的, 排序之后形成一个树状结构, 这就是叫它 TreeMap 的原因. 因为它要排序, 所以加入它的键必须实现 Comparable 接口或在创建 TreeMap 时提供比较器(Comparator). 除此之外, 它还提供了一些按键检索的方法.
* 两个工具类(Arrays 和 Collections)
* @author king
*
*/
public class Demo4 {
public static void main(String[] args) {
String name[]=new String[]{"zs","as","sj"};
// System.out.println(name);
System.out.println(Arrays.toString(name));
System.out.println("***********************");
List<Integer> list=new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(5);
list.add(2);
Collections.sort(list);//升序
Collections.reverse(list);//倒序
System.out.println(list);
}
}
LinkedList 采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引
答案在我的博客:集合框架02中就有
ArrayList和Vector功能类似。整体上ArrayList是Vector的“裸奔新版”Vector从Java 1.0起就存在,ArrayList从Java 1.2起才存在,较新。所以Vector在JavaME、Card等各种微小版本都可以使用,而ArrayList不能
ArrayList不具备线程同步的安全性,但速度较快,所以叫裸奔。Vector具备线程安全。
Map<Integer, String> map=new TreeMap<Integer, String>();
map.put(11, "张三");
map.put(22, "李四");
map.put(33, "王五");
map.put(11, "张三三");
for(Map.Entry<Integer, String> entry:map.entrySet()){
System.out.println("key:"+entry.getKey()+"\t"+"value:"+entry.getValue());
}
}
HashMap:不是多线程安全,允许null作为键和值
HashTable:是同步的,可以在多线程使用,null不可以作为键和值
6.什么是同步? 线程的安全性就是同步,否则反正。不同步的运行速度比同步快,因为有锁的机制存在
7.什么又是同步线程?就是多个线程操作同一个对象时,如果一个线程先进来,为了不让其他线程干扰其工作,所有在先来的线程没有工作完之前,让其他的线程处于等待状态,等先来的线程处理完,再让其他线程进来(注意:同步线程是操作同一对象才用到)
---------------------------------------敬请期待下一节哦!
- java集合框架03
- Java集合:集合框架
- 【Java】java集合框架
- [Java]Java集合框架
- JAVA集合框架和集合
- 【集合】Java集合框架介绍
- Java集合之集合框架
- [集合]Java的集合框架 Collection集合
- java集合框架之List------03_01
- Java集合框架 (一)
- Java集合框架 (二)
- Java集合框架(三)
- Java集合框架
- 也来谈Java集合框架
- 也来谈Java集合框架
- Java集合框架 (一)
- Java集合框架
- 也来谈Java集合框架
- SSnoCD (之一)
- NOIP2015子串
- 通向架构师的道路(第十九天)使用maven构建Spring工程
- Spark的原理
- 关于内存高低地址 以及 数据的存取
- java集合框架03
- Python3学习笔记4-函数,全局变量&局部变量,内置函数
- 通向架构师的道路(第二十天)spring(二)maven结合spring与ibatis
- java基础之面向对象的介绍
- Linux下的多进程编程
- Java构造器和方法的区别
- HDFS和MapReduce
- 蛇形矩阵
- 十五、组合模式——设计模式学习笔记