Java集合框架提供了一套性能优良、使用方便的接口和类,他们位于java.util包中。

Collection接口 主要有List、Set等实现类,Map接口主要有HashMap、TreeMap等实现类。Collections提供了对集合进行排序、遍历等多种算法实现。

以下为Set集合的使用:存储唯一的,无序的对象。派生类HashSet。

Set set=new HashSet();
set.add("周五");
set.add(199);
set.add(23.55);
set.add(100f);

使用foreach方法进行输出:

for (Object object : set) {
System.out.println(object);
}

应该注意的是,set接口没有get方法,所以不能用for循环遍历输出。

使用迭代器取值

Iterator its = set.iterator();
while (its.hasNext()) {
//进入循环输出集合中的元素
Object obj = its.next();
System.out.println(obj);
}

程序运行结果为:

23.55
周五
100.0
199
-------------------
23.55
周五
100.0
199

TreeSet实现排序功能

Set set=new TreeSet();
set.add("2ee");
set.add("jsk");
set.add("sda");
set.add("wql");
set.add("sdj");
for (Object object : set) {
System.out.println(object);
}

Map接口

Map接口存储一组键值对象,提供key到value的映射。

示例需求说明:

创建一个诗的集合,迭代出每首诗的名称,作者,内容,

分析:

创建“诗”类Poem,属性包括:名称、作者、内容

使用HashMap存储诗的信息,将诗的名称作为key,诗内容作为value。

解决:

首先创建Poem类,类中包含私有属性:名称、作者、内容,并生成对应的get、set方法,生成全参构造函数和无参构造函数。

在测试类中对对象数组进行赋值:

     Poem poem1=new Poem("春晓", "孟浩然","春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。");
Poem poem2=new Poem("鹿柴", "王维","空山不见人,但闻人语响。返影入深林,复照青苔上。");
Poem poem3=new Poem("相思", "王维","红豆生南国,春来发几枝。愿君多采撷,此物最相思。");

然后创建Map下的HashMap函数,

Map<String, Poem> map=new HashMap<String, Poem>();

然后使用map.put添加数据:

        map.put("春晓", poem1);
map.put("鹿柴", poem2);
map.put("相思", poem3);

最后使用迭代器进行输出:

Set keys=map.keySet();
Iterator its = keys.iterator();
while(its.hasNext()){
String key=(String) its.next();
Poem poem=map.get(key);
System.out.println(poem.getName()+poem.getAuthor()+poem.getWenzhang());
}

程序运行结果为:

相思
王维
红豆生南国,春来发几枝。愿君多采撷,此物最相思。
春晓
孟浩然
春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。
鹿柴
王维
空山不见人,但闻人语响。返影入深林,复照青苔上。

LinedList操作数据

插入、删除操作频繁时,可使用LinkedList来提高效率。

以下为常用的操作方法:

void addFirst(Object o)              在列表的首部添加元素

void addLast(Object o)              在列表的末尾添加元素

Object getFirst()                        返回列表中的第一个元素

Object getLast()                        返回列表中的最后一个元素

Object removeFirst()                 删除并返回列表中的第一个元素

Object removeLast()                 删除并返回列表中的最后一个元素

Map接口专门处理键值映射数据的存储,可以根据键实现对值的操作。最常用的实现类是HashMap。

以下为常用的操作方法

Object put(Object key, Object val)                     以“键-值对”的方式进行存储

Object get (Object key)                                     根据键返回相关联的值,如果不存在指定的键,返回null

Object remove (Object key)                              删除由指定的键映射的“键-值对”

int size()                                                           返回元素个数

Set keySet ()                                                    返回键的集合

Collection values ()                                          返回值的集合

boolean containsKey (Object key)                   如果存在由指定的键映射的“键-值对”,返回true

Hashtable和HashMap的异同

Hashtable继承Dictionary类,HashMap实现Map接口。

Hashtable线程安全,HashMap线程非安全

Hashtable不允许null值,HashMap允许null值。

JAVA集合框架包含的内容的更多相关文章

  1. java 集合框架小结

    一:集合框架  集合框架是为表示和操作集合而规定的一种统一的标准的体系结构.  任何集合框架都包含三大块内容:对外的接口.接口的实现和对集合运算的算法.   接口:即表示集合的抽象数据类型.Colle ...

  2. 详谈java集合框架

    1.为什么使用集合框架 当我们并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象——可以使用Java集合框架 2.Java集合框架包含的内容 接口:(父类)Collection接口下包含Li ...

  3. Java——集合框架之ArrayList,LinkedList,迭代器Iterator

    概述--集合框架 Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类).所有抽象出来的数据结构和操作(算法)统称为Java集合框架(Java Collection ...

  4. Java集合框架的总结

    本篇文章先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析.当我们把一个对象放入集合中后,系统会把所有集合元素都当成Object类的实例进 ...

  5. Java集合框架的知识总结(1)

    说明:先从整体介绍了Java集合框架包含的接口和类,然后总结了集合框架中的一些基本知识和关键点,并结合实例进行简单分析. 1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象 ...

  6. Java集合框架 面试问题整理

    简介 java集合类是java.util 包中的重要内容.java集合框架包含了大量集合接口以及这些接口的实现类和操作他们的算法. java集合框架图 主要提供的数据结构 List 又称有序的Coll ...

  7. Java集合框架List,Map,Set等全面介绍

    Java集合框架的基本接口/类层次结构: java.util.Collection [I]+--java.util.List [I]   +--java.util.ArrayList [C]   +- ...

  8. (转)Java集合框架:HashMap

    来源:朱小厮 链接:http://blog.csdn.net/u013256816/article/details/50912762 Java集合框架概述 Java集合框架无论是在工作.学习.面试中都 ...

  9. 【JAVA集合框架之Map】

    一.概述.1.Map是一种接口,在JAVA集合框架中是以一种非常重要的集合.2.Map一次添加一对元素,所以又称为“双列集合”(Collection一次添加一个元素,所以又称为“单列集合”)3.Map ...

随机推荐

  1. java8(二)方法引用

    方法引用让你可以重复使用现有的方法定义,并像 Lambda 一样进行传递. 方法引用可以被看作仅仅调用特定方法的 Lambda 的一种快捷写法. 事实上,方法引用就是让你根据已有的方法实现来创建 La ...

  2. maven的不同版本下载及环境配置

    Maven不同版本下载及环境配置 Maven下载 去到官网 https://maven.apache.org/ 会发现是最新版本,但是一般下载的话,都会下载比最新的版本要低两到三个小版本的,这里就下载 ...

  3. python --- 零碎

    1.匿名输出: lambda x : print(x))(100) #冒号前输入量 ,冒号后是输出量结果:100 2.导入调用其他python文件: test1.py #第一个python文件 def ...

  4. 以股票案例入门基于SVM的机器学习

    SVM是Support Vector Machine的缩写,中文叫支持向量机,通过它可以对样本数据进行分类.以股票为例,SVM能根据若干特征样本数据,把待预测的目标结果划分成“涨”和”跌”两种,从而实 ...

  5. 记几个 DOM 操作技巧

    使用 attributes 属性遍历元素特性 // 迭代元素的每一个特性,将它们构造成 name = value 的字符串形式 function outputAttributes (element) ...

  6. lxml解析网页

    目录 1. 什么是lxml 2. 初次使用 3. xpath 3.2 标签定位 3.3 序列定位 3.4 轴定位 4. 实例 1. 什么是lxml lxml是干什么的?简单的说来,lxml是帮助我们解 ...

  7. JDK基础必备面试十问

    1. new一个对象在Java内部做了哪些工作? 从静态角度来看,new一个对象表示创建一个类的对象实例. 从JVM运行角度来看,当JVM执行到new字节码时,首先会去查看类有没有被加载到内存以及初始 ...

  8. 五分钟学会悲观乐观锁-java vs mysql vs redis三种实现

    1 悲观锁乐观锁简介 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果 ...

  9. 【win10主机】连接virtualbox上【32位winXP系统虚拟机】上启动的mysql

    问题Q: 在virtualbox上启动winXP系统虚拟机后,启动含oa项目的tomcat,数据库服务也运行起来了,虚拟机上连接无误: 在上一篇<主机访问 虚拟机启动的项目>基础上,尝试连 ...

  10. Unity进阶:行为树 02 夺旗战搭建场景,AI脚本,旗子拿起

    版权申明: 本文原创首发于以下网站: 博客园『优梦创客』的空间:https://www.cnblogs.com/raymondking123 优梦创客的官方博客:https://91make.top ...