List、Set、Map的使用
1.List(接口)
List接口的特点:
a.List接口可以存放任意数据,且在接口中,数据可以重复。
b.List中提供了高效的插入和移除多个元素的方法。
List常用的子类
a.ArrayList
b.Vector
Arraylist代码实例演示:
import java.util.ArrayList;
import java.util.List; /**
* Created by Pres_cheng on 2016/9/4.
*/
public class UsingArrayList {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); list.add("a");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); list.remove(0);
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); System.out.println("[0]:"+list.get(0));
System.out.println("[1]:"+list.get(1));
}
}
Vector代码实例演示:
import java.util.List;
import java.util.Vector; /**
* Created by Pres_cheng on 2016/9/4.
*/
public class UsingVector {
public static void main(String args[]){
List<String> list = new Vector<>();
list.add("a");
list.add("b");
list.add("c");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); list.add("a");
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); list.remove(0);
for (int i = 0; i < list.size(); i++)
System.out.println(list.get(i));
System.out.println("------------"); System.out.println("[0]:"+list.get(0));
System.out.println("[1]:"+list.get(1));
}
}
从上述代码可以看出ArrayList和Vector非常相似,那他们的区别是什么呢?
Vector是JDK1.0以后推出的,性能较低,用于同步处理数据,但线程相对安全。
ArrayList是JDK1.2以后推出的,性能高,用于异步处理数据,但线程相对不安全。
2.Set(接口)
Set接口的特点:Set接口可以存放任意数据,数据不可重复。
Set接口常用的子类
a.HashSet : HashSet中存储数据是无序的
b.TreeSet : TreeSet中存储数据是按ASCII码表的顺序排列的
3.Map(接口)
Map接口的特点
a.Map接口存放数据的形式是以键值对的形式存放如:
key-->value
"name'-->"pres_cheng"
"age"-->"23"
键(key)的类型要一致,值(value)的类型也要一致。
Iterator(迭代器)的使用
Iterator自带常用方法:
a.hasNext
b.next
c.remove
代码实例演示:
import java.util.*; /**
* Created by Pres_cheng on 2016/9/4.
*/
public class UsingMap {
public static void main(String[] args) {
Map<String, String> maps = new HashMap<>();
maps.put("name", "pres_cheng");
maps.put("age", "23");
System.out.println(maps);
System.out.println("size:" + maps.size());
Set<String> set = maps.keySet();
System.out.println("key:" + set);
Collection<String> collection = maps.values();
System.out.println("value:" + collection); System.out.println("- - - - - - - -"); //迭代器输出方法
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println("key:" + iterator.next());
} Iterator<String> iterator1 = collection.iterator();
while (iterator1.hasNext()) {
System.out.println("value:" + iterator1.next());
}
}
}
List、Set、Map的使用的更多相关文章
- mapreduce中一个map多个输入路径
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- Java版本:识别Json字符串并分隔成Map集合
前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...
- MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析
在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...
- MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
- MapReduce剖析笔记之三:Job的Map/Reduce Task初始化
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...
随机推荐
- C#中&与&&的区别
刚刚翻书发现这个问题,在网上找了一下,我的理解吧. 他俩的区别就是“&”和“|”不执行短路计算,而&&和||执行了短路计算. &不执行短路计算 ——————表达式A&a ...
- hadoop hdfs 命令行 设置文件夹大小的上限 quota:配额
>bin/hdfs dfs -put readme.txt /finance >bin/hdfs dfs -du -s /finance > /finance >bin/hdf ...
- Unity NGUI 3.0.4版本 制作网络版斗地主
Unity NGUI 3.0.4版本 @by 灰太龙 开发环境 Win7旗舰版 Unity 4.2.1f4 本文就写个开门篇,告诉大家怎么用NGUI,第一步导入NGUI 3.0.4版本! 1.启动U ...
- MYSQL的硬盘IO过高引起的CPU过高判断
其实,为客户提供相关日志,不就是RACKSPACE主要作的事? 俺们以后也可以效仿的.不要去解决,而是协助客户定位. http://blog.const.net.cn/a/17275.htm 上文的思 ...
- angularjs学习总结(~~很详细的教程)
1 前言 前端技术的发展是如此之快,各种优秀技术.优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢. AngularJS是google在维护,其在国外已经十分火热,可是国内的 ...
- swiper 多个循环的实现
swiper 最好要一一对应,最好与id关联. new Swiper('#guess .swiper-container', { pagination: '#guess .swiper-paginat ...
- 有关linux下redis overcommit_memory的问题(转)
一.背景 公司的redis有时background save db不成功,通过log发现下面的告警,很可能由它引起的: [13223] 17 Mar 13:18:02.207 # WARNING ov ...
- 【动态规划】【最短路】Codeforces 710E Generate a String
题目链接: http://codeforces.com/problemset/problem/710/E 题目大意: 问写N个字符的最小花费,写一个字符或者删除一个字符花费A,将当前的字符数量翻倍花费 ...
- HDOJ(HDU) 2304 Electrical Outlets(求和、、)
Problem Description Roy has just moved into a new apartment. Well, actually the apartment itself is ...
- HDU1247 Hat’s Words(Trie的动态内存版本)
Hat’s Words Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...