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 ...
随机推荐
- springboot-redis-crda example
springboot-redis-crda example 1. 从 https://github.com/XLuffyStory/springboot-redis-crdu 拿到源码之后,导入到ST ...
- Go - Struct 结构体
目录 概述 声明结构体 生成 JSON 改变数据 推荐阅读 概述 结构体是将零个或多个任意类型的变量,组合在一起的聚合数据类型,也可以看做是数据的集合. 声明结构体 //demo_11.go pack ...
- 微服务-springcloud学习资料链接
API文档:https://springcloud.cc/spring-cloud-dalston.html#_spring_cloud_netflix 中文社区:http://springcloud ...
- python学习 -女神或者男神把微信消息撤回后好慌,有了这个妈妈再也不担心你看不到女神或者男神撤回的消息了(超详解)
简介 有时候在忙工作,女朋友发了一个消息,就撤回了,但是人天生的都有一颗好奇心,而且在当今这个时代找个女朋友不容易,一个程序猿找一个女朋友更是不容易的.人家好不容易跟你,你还不得把人家当老佛爷侍候着, ...
- 装饰器&递归
装饰器 1.开放封闭原则 在源码不改变的情况下,增加一些额外的功能 对扩展是开放的,对修改是封闭的 1.1 开放原则:增加额外新功能 1.2 封闭原则:不要改变源码 2 装饰器 满足开放封闭原则, ...
- Vue技术点整理-前言
前言 Vue版本说明:本文档编写时,Vue稳定版本为 2.6.10 本文档编写目的为:整理Vue相关生态的技术点.和开发中经常使用到的技术点,让开发者快速上手开发,提升开发效率 一,Vue开发工具:本 ...
- MySQL sys Schema 简单介绍-1
参考文档: MySQL- 5.7 sys schema笔记 MySQL 5.7新特性:SYS库详解 MySQL Performance Schema&sys Schema介绍 内存分配统计视图 ...
- ajax请求中 两种csrftoken的发送方法
通过ajax的方式发送两个数据进行加法运算 html页面 <body> <h3>index页面 </h3> <input type="text&qu ...
- scrapy基础知识之将item写入JSON文件:
pipelines.py import json class xxPipeline(object): def __init__(self): self.filename=ope ...
- Oracle数据库---存储过程、存储函数
--创建存储过程CREATE OR REPLACE PROCEDURE first_procISBEGIN DBMS_OUTPUT.PUT_LINE('我是过程'); DBMS_OUTPUT.PUT_ ...