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. MySql Lock wait timeout exceeded该如何处理? (转载)

    转载 https://ningyu1.github.io/site/post/75-mysql-lock-wait-timeout-exceeded/ 这个问题我相信大家对它并不陌生,但是有很多人对它 ...

  2. Python向FTP服务器上传文件

    上传 代码示例: #!/usr/bin/python # -*- coding:utf-8 -*- from ftplib import FTP ftp = FTP() # 打开调试级别2, 显示详细 ...

  3. Mac安装MySQL-python报错解决

    Mac安装MySQL-pyhton报错 今天在Mac上安装MySQL-python报错,搜遍网络都说什么mysql config路径问题,但是都不行. 解决方案 一开始遇到的问题是: Complete ...

  4. Linux下编译PHP常见错误及解决方法

    1.configure: error: xml2-config not found. Please check your libxml2 installation.yum install libxml ...

  5. Linux 运行jar包命令(Cent OS 7后台运行jar包)

    Linux 运行jar包命令如下: 方式一 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu. ...

  6. C#中的委托和事件(上篇)

    每一个初学C#的程序猿,在刚刚碰到委托和事件的概念时,估计都是望而却步,茫然摸不到头脑的.百度一搜,关于概念介绍的文章大把大把的,当然也不乏深入浅出的好文章.可看完这些文章,大多数新手,估计也只是信心 ...

  7. Ajax探讨

    Ajax是一种技术方案,并不是什么新技术,Ajax请求使用XmlHttpRequest对象发送, XmlHttpRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信. 最 ...

  8. Java项目案例之---常用工具类练习

    常用工具类练习 1. 请根据控制台输入的特定日期格式拆分日期,如:请输入一个日期(格式如:**月**日****年),经过处理得到:****年**月**日 import java.util.Scanne ...

  9. Java监控任务的生命周期

    Observable: public interface Observable { enum Cycle{ STARTED, RUNNING, DONE, ERROR } Cycle getCycle ...

  10. MySQL5.7.20源码安装以及pt-query-digest用法示例

    MySQL5.7.20源码安装1.下载解压cd /data/app/mysql5.7wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5 ...