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对象,丢入队列 ...
随机推荐
- [BZOJ 2004] [Hnoi2010] Bus 公交线路 【状压DP + 矩阵乘法】
题目链接: BZOJ - 2004 题目分析 看到题目完全不会..于是立即看神犇们的题解. 由于 p<=10 ,所以想到是使用状压.将每个连续的 p 个位置压缩成一个 p 位 2 进制数,其中共 ...
- [BZOJ 1066] [SCOI2007] 蜥蜴 【最大流】
题目链接:BZOJ - 1066 题目分析 题目限制了高度为 x 的石柱最多可以有 x 只蜥蜴从上面跳起,那么就可以用网络流中的边的容量来限制.我们把每个石柱看作一个点,每个点拆成 i1, i2,从 ...
- js弹出新窗口居中
方式1: <script language="javascript"> var newUrl = <%=newUrl % > //window.locati ...
- hdu 5128 The E-pang Palace
http://acm.hdu.edu.cn/showproblem.php?pid=5128 题意:给定N个点,选出其中8个点组成两个矩形,使得两个矩形的面积和最大. 思路:找出所有的矩形,然后枚举, ...
- width:auto; 和 width:100%;的不同
width:auto:会将元素撑开至整个父元素width,但是会减去子节点自己的margin,padding或者border的大小.width:100%:会强制将元素变成和父元素一样的宽,并且添加额外 ...
- 【HDOJ】2444 The Accomodation of Students
图论的题目.着色原理+二分图匹配. #include <cstdio> #include <cstring> #define MAXN 205 char map[MAXN][M ...
- spoj-694-Distinct Substrings(后缀数组)
题意: 给定一个字符串,求不相同的子串的个数 分析: 每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同 的 前 缀 的 个 数 . 如 果 所 有 的 后 缀 按 照 suffix ...
- Reverse Words in a String——LeetCode
Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...
- Binary Tree Inorder Traversal ——LeetCode
Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tre ...
- JavaScript 调试常见报错以及修复方法
(看到一篇调试JS很有用的文章,收藏一下) JavaScript 调试是一场噩梦:首先给出的错误非常难以理解,其次给出的行号不总有帮助.有个查找错误含义,及修复措施的列表,是不是很有用? 以下是奇怪的 ...