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常用的集合类的更多相关文章

  1. Java常用的集合类(转)

    继上一篇文章http://www.cnblogs.com/EasonJim/p/6937690.html中介绍的集合类有非常多,但是在实际使用中,最常用的应该是下面这几种: Java的集合框架分为Li ...

  2. Java中最常用的集合类框架之 HashMap

    一.HashMap的概述 HashMap可以说是Java中最常用的集合类框架之一,是Java语言中非常典型的数据结构.      HashMap是基于哈希表的Map接口实现的,此实现提供所有可选的映射 ...

  3. 第一章 Java常用集合类总览

    1.Java最常用的集合类 Collection接口 List接口(允许有重复元素):ArrayList.LinkedList.Vector.Stack Set接口(不允许有重复元素,可用于去重操作) ...

  4. [转]Java五个最常用的集合类之间的区别和联系

    Map<String, ?>只能是只读模式,不能增加,因为增加的时候不知道该写入什么类型的值:Map<String, Object>可以读和写,只要是所有Object类的子类都 ...

  5. JAVA常用数据结构及原理分析

    JAVA常用数据结构及原理分析 http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balaba ...

  6. JAVA常用知识点及面试题总结

    1. String.StringBuffer.StringBuilder三者区别? (1)三者在执行速率上的比较: String<StringBuffer<StringBuilder 原因 ...

  7. (6)Java数据结构-- 转:JAVA常用数据结构及原理分析

    JAVA常用数据结构及原理分析  http://www.2cto.com/kf/201506/412305.html 前不久面试官让我说一下怎么理解java数据结构框架,之前也看过部分源码,balab ...

  8. java中的集合类总结

    在使用Java的时候,我们都会遇到使用集合(Collection)的时候,但是Java API提供了多种集合的实现,我在使用和面试的时候频 频遇到这样的“抉择” . :)(主要还是面试的时候) 久而久 ...

  9. Java常用面试题总结

    1.多线程实现方式 2.cookie和session区别 3.数据加密 4.接口并发 5.常用的集合类 6.遍历集合方式 7.接口和抽象类 8.#和$区别 9.防止sql注入 10.springMvc ...

随机推荐

  1. 15 | 过不了的坎:聊聊GUI自动化过程中的测试数据

  2. MySQL 性能调优——SQL 查询优化

    如何设计最优的数据库表结构,如何建立最好的索引,以及如何扩展数据库的查询,这些对于高性能来说都是必不可少的.但是只有这些还不够,要获得良好的数据库性能,我们还要设计合理的数据库查询,如果查询设计的很糟 ...

  3. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看. 参考内容: 王顶老师 l ...

  4. 深度优先(DFS)和广度优先(BFS)

    深度优先(Depth-First-Search)和广度优先(Breadth-First-Search)是我们遍历图的两种方式,它们都属于穷举法,用来系统的遍历图中的所有顶点 关于如何再一个有向图/无向 ...

  5. python连接 elasticsearch 查询数据,支持分页

    使用python连接es并执行最基本的查询 from elasticsearch import Elasticsearch es = Elasticsearch(["localhost:92 ...

  6. WordPress教程之初识WordPress

    你是否梦想过以极低的成本获得一个漂亮的网站,而无需聘请专业的开发和设计人员,也不必学习任何编程知识,并且网站功能可以无限扩展?对这些问题中的任何一个,如果你的答案是肯定的,那么 WordPress 将 ...

  7. 使用JavaScript实现量化策略并发执行——封装Go函数

    在实现量化策略时,很多情况下,并发执行可以降低延时提升效率.以对冲机器人为例,需要获取两个币的深度,顺序执行的代码如下: 请求一次rest API存在延时,假设是100ms,那么两次获取深度的时间实际 ...

  8. curl推送示例:熊掌号,百度站长的链接推送(系统环境变量配置)

    curl推送示例:熊掌号,百度站长的链接推送(需要用户系统环境变量配置)这篇文章主要讲解curl推送,熊掌号,百度站长的链接推送,我们很多seo朋友都搞不定curl的推送链接,而且还要配置系统的环境变 ...

  9. elasticsearch 集群部署,版本 5.5.0

    准备说明: 两台服务器 Ip分别为 192.168.239.78(主),192.168.239.49(从) 主服务器上配置如下:1.上传es5.5.0版本至主服务器2.解压 unzipunzip el ...

  10. Windows下通过VNC远程访问Linux服务器,并实现可视化

    前言 最近因部门需要,老大想让我在公司Linux服务器上弄个Oracle,以用作部门测试环境的数据库服务器,经过一番折腾后,成功完成了任务.因公司Linux服务器是无图形界面的,本人接触Linux不多 ...