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. Jenkins的安装与使用(一)

    jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java, ...

  2. 如何成长为一名合格的web架构师?

    写代码要经历下面几个阶段.  一 .你必须学习面向对象的基础知识,如果连这个都忘了,那你的编程之路注定是在做原始初级的重复! 很多程序员都知道类.方法.抽象类.接口等概念,但是为什么要面向对象,好处在 ...

  3. seo外链发布之论坛外链

    目前最常见的seo外链方式有5种,之前大发迹创业项目网写文章分享过,详情可以查看文章<[网站SEO优化]最常见的五种软文外链发布方式!>,这篇文章不说其他的几种发外链,就来讲讲通过论坛建设 ...

  4. 在SpringBoot中使用RabbitMQ

    目录 RabbitMQ简介 RabbitMQ在CentOS上安装 配置文件 实践 概述 Demo 遇到的BUG 启动异常 无法自动创建队列 RabbitMQ简介 wikipedia RabbitMQ在 ...

  5. 玲珑OJ 1083:XJT Love Digits(离线处理+哈希)

    http://www.ifrog.cc/acm/problem/1083 题意:比较好懂.注意答案的x不包含ax本身,所以才输出-1. 思路:离线处理.根据x排序,然后每次更新Hash[]数组就好了. ...

  6. [Python学习]错误篇一

    REFERENCE:<Head First Python> ID:我的第一篇[Python学习] BIRTHDAY:2019.7.6 EXPERIENCE_SHARING:两个程序错误类型 ...

  7. 【Aizu - 0033】Ball (简单搜索)

    -->Ball 原文是日语,这里直接写中文了 Descriptions: 如图所示,容器中间有一枢轴,下方分为两路.容器上方开口,从1到10连续编号的小球从容器开口A放入.通过调整枢轴E的方向, ...

  8. Java编程思想:擦除的神秘之处

    import java.lang.reflect.Array; import java.util.ArrayList; import java.util.List; public class Test ...

  9. js 使用ES6 实现从json中取值并返回新的数组或者字符串

    1.获取的json数据是这样的: data:[ { 'Id': '1', 'Phone': '123456', 'Name': '张三', }, { 'Id': '2', 'Phone': '7894 ...

  10. list和list<map<String,object>>比较,不存在map的key赋值

    package com; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDa ...