JAVA常用的集合类
package com.xian.test;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
public class JavaList {
public static void main(String[] args) throws Exception {
//getList();
getHash();
getSet();
}
/**
* arrayList随机存取效率高,线程不安全,可重复,根据下标可取值 源码中构造参数为10,初始容量10,每次增长50%
* 添加数据到 前面或中间效率低,linkedList链表按顺序访问,前面或中间 添加删除数据时 较快。
* Vector线程安全。
* @author 贾小仙
* @serialData 2015-4-16 10:37
*/
public static void getList(){
List arrayList=new ArrayList();
arrayList.add("贾小仙");
arrayList.add("小清");
System.out.println(arrayList.get(0)+" | | "+arrayList.get(1));
arrayList.add(0, "Fuck you");
arrayList.set(1, "我名字消失了");
System.out.println(arrayList.get(0)+" | | "+arrayList.get(1)+" | | "+arrayList.get(2));
System.out.println(arrayList.contains("小清"));//判断是否存在
}
/**
* hashMap线程不安全, 允许key和value为null, 无序存放。containsKey ,containsValue, Iterator 迭代。
* hashTable线程安全,不允许key和value为null,无序存放,contains,containsKey ,containsValue, Enumeration迭代。
*(synchronized)
* @throws Exception
* @author 贾小仙
*/
public static void getHash() throws Exception {
HashMap map=new HashMap();
map.put("you", "小清");
map.put("me", "贾小仙");
System.out.println(map.get("you")+" | | "+map.get("me"));
if(map.put("me", "error")!=null)
System.out.println("不允许重复");
//throw new Exception("不允许重复");
map.put("null", "null");
System.out.println(map.get("null"));
if(map.containsKey("me"))
System.out.println("me的key是存在。");
Set set=map.entrySet(); //iterator迭代必须是set所以返回给set然后迭代。
Iterator iter=set.iterator();
while(iter.hasNext()){
System.out.println("iterator迭代 : "+iter.next());
}
Hashtable table=new Hashtable();
table.put("you", "小清");
table.put("me", "贾小仙");
table.put("null", "null");//字符串的null是可以的.这个null就会出现nullpointException
Enumeration e=table.elements();
while(e.hasMoreElements()){ //可以看出来 是无序的。
Object next=e.nextElement();
System.out.println("迭代的参数: "+next);
}
}
/**
* set集合有一个特色。就是set里面的不重复。所以可以用set来做一些去重的操作。很方便。
* set迭代使用iterator
* hashSet无序的存放, TreeSet有序的存放。
*/
public static void getSet(){
Set set=new HashSet();
set.add("贾小仙");
set.add("小清");
if(set.add("小清"))
System.out.println("不可以重复哦。");
TreeSet treeSet=new TreeSet();
treeSet.add("me");
treeSet.add("you");
Iterator iter=treeSet.iterator();
while(iter.hasNext()) //有序的
System.out.println("treeSet的Iterator迭代 "+iter.next());
}
}
JAVA常用的集合类的更多相关文章
- Java常用的集合类(转)
继上一篇文章http://www.cnblogs.com/EasonJim/p/6937690.html中介绍的集合类有非常多,但是在实际使用中,最常用的应该是下面这几种: Java的集合框架分为Li ...
- Java中最常用的集合类框架之 HashMap
一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构. HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...
- 第一章 Java常用集合类总览
1.Java最常用的集合类 Collection接口 List接口(允许有重复元素):ArrayList.LinkedList.Vector.Stack Set接口(不允许有重复元素,可用于去重操作) ...
- [转]Java五个最常用的集合类之间的区别和联系
Map<String, ?>只能是只读模式,不能增加,因为增加的时候不知道该写入什么类型的值:Map<String, Object>可以读和写,只要是所有Object类的子类都 ...
- JAVA常用数据结构及原理分析
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balaba ...
- JAVA常用知识点及面试题总结
1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...
- (6)Java数据结构-- 转:JAVA常用数据结构及原理分析
JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...
- java中的集合类总结
在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频 频遇到这样的“抉择” . :)(主要还是面试的时候) 久而久 ...
- Java常用面试题总结
1.多线程实现方式 2.cookie和session区别 3.数据加密 4.接口并发 5.常用的集合类 6.遍历集合方式 7.接口和抽象类 8.#和$区别 9.防止sql注入 10.springMvc ...
随机推荐
- CentOS7 搭建gitlab服务器
本文介绍如何在CentOS7.2上搭建Gitlab服务器,并简单介绍如何使用. Preface 使用的是CentOS7.2的操作系统,安装当前最新版Gitlab服务器,下载地址:清华大学开源软件镜像站 ...
- Java多线程同步工具类之Semaphore
Semaphore信号量通常做为控制线程并发个数的工具来使用,它可以用来限制同时并发访问资源的线程个数. 一.Semaphore使用 下面我们通过一个简单的例子来看下Semaphore的具体使用,我们 ...
- 深度优先(DFS)和广度优先(BFS)
深度优先(Depth-First-Search)和广度优先(Breadth-First-Search)是我们遍历图的两种方式,它们都属于穷举法,用来系统的遍历图中的所有顶点 关于如何再一个有向图/无向 ...
- python的数据类型之字符串(一)
字符串(str) 双引号或者单引号中的数据,就是字符串. 注意事项 1.反斜杠可以用来转义,使用r可以让反斜杠不发生转义. 2.字符串可以用+运算符连接在一起,用*运算符重复. 3.Python中的字 ...
- 常用的方法论-Q12
- 一套简单的web即时通讯——第三版
前言 接上版,本次版本做了如下优化: 1.新增同意.拒绝添加好友后做线上提示: 2.新增好友分组,使用工具生成后台API,新增好友分组功能,主要功能有:添加分组.重命名分组名称.删除分组 3.新增好友 ...
- ZooKeeper入门(二) Zookeeper选举
1 背景 1.1 什么是leader选举 在zookeeper集群中,每个节点都会投票,如果某个节点获得超过半数以上的节点的投票,则该节点就是leader节点了 1.2 zookeeper集群选举le ...
- [golang]golang time.After内存泄露问题分析
无意中看到一篇文章说,当在for循环里使用select + time.After的组合时会产生内存泄露,于是进行了复现和验证,以此记录 内存泄露复现 问题复现测试代码如下所示: package mai ...
- springboot配置文件外置处理
前言: 在springboot项目中,一般的配置文件都在resource/config下面,它可以以两种方式存在,一种是yml,一种是properties方式. 当运维和开发分开的时候,比如连接mys ...
- Yarn原理
欢迎关注我的公众号<小沈干货>,谢谢大家. 一.可以将YARN看作是分布式操作系统,在大数据组件中,YARN的定位是: 1)集群资源管理中心 2)任务调度中心 YARN的功能进一步可以细化 ...