List接口:可以存放重复内容;
set接口:不能存放重复内容,重复内容依靠hashcode和equal两个方法来区分;
Queue:队列;
SortedSet接口:对集合中的数据进行排序;
 

List接口:

List子类:ArrayList,Vector
ArrayList和Vector的区别:

LinkedList类和queue接口

LinedList 链表的操作类
Queue接口是Collection的子接口
 

Set接口:

Set接口是collection接口的子接口,但是和Collection或者List接口不同的是:set不能加入重复元素。
set的主要方法同Collection一致
Set接口的实例无法像List接口那样进行双向输出
Set子类:
散列存放:HashSet
有序存放:TreeSet
Set是无序的,List是按照存放顺序进行排序的。
对象排序必须实现Commparable接口,在commpareTo方法里面对对象数据进行排序
 

集合类的操作:

Iteartor
ListIterator
foreach输出
Enumeration输出
注意:在使用集合输出的时候必须形成如下思路,只要是碰到集合数据的操作,就一定使用Iterator接口
Iterator接口的操作原理:
Interator是专门的迭代输出接口,所谓的迭代输出就是将元素一个个进行判断,判断是否有内容,如果有取出来。
迭代器标准写法:
迭代删除元素:
注意点:
List接口存在删除方法:remove
如果在使用输出的过程中使用list的remove执行删除,会出现问题。
在使用Iterator输出的时候,不要使用集合类里面的remove方法,只能使用迭代器里面的remove方法。
 

ListIterator

Iterator的子接口;Iterator主要是实现从前到后的单项输出,如果实现从后到前或者从前到后的双向输出,就要使用子接口ListIterator
注意:只有List接口才存在ListIterator接口的实例化操作。
先进行向前才能进行向后操作。
 

Map接口:

Collection和Map的区别:
Collection的操作是一个对象,map是一对对象,key-->value形式进行存储
 
Map的子类:
HashMap:无序存放,新的操作类,key不能重复
HashTable,无序存储,旧的操作类,key不允许重复
TreeMap:可以排序的map集合,按照集合中的key进行排序,key不允许重复。
WeakHashMap:弱引用Map集合,当集合中否写内容不再使用时候,可以清除掉无用的数据,并使用gc回收。
IdentityHashMap,key可以重复的Map集合。
 
HashMap和HashTable的区别:
 
Map接口输出:
顺序如下:
使用foresh输出:

IdentityHashMap类:

如果希望key可以重复可以使用IdentityHashMap
SortedMap
SortedSet是TreeSet的实现接口
SortedMap是TreeMap的实现,是可以排序的map
 

Collections,集合类帮助类

提供集合类相关的帮助方法:
emptyList()
emptySet()
addAll()
replayAll()
 

Stack,栈

栈是先进后出的数据结构进行存储的,新的元素压在旧的元素上面;
 
Stack是Vector的子类
push入栈
pop出栈

java复习 --集合类的更多相关文章

  1. java复习集合类之List接口

    List 为有序可重复列表 实现List接口的类主要是ArrayList 下面为ArrayList的测试代码 import java.util.ArrayList; public class demo ...

  2. java 复习001

    java 复习001 比较随意的记录下我的java复习笔记 ArrayList 内存扩展方法 分配一片更大的内存空间,复制原有的数据到新的内存中,让引用指向新的内存地址 ArrayList在内存不够时 ...

  3. java基础 集合类

    java集合类主要有以下集中: List结构的集合类: ArrayList类, LinkedList类, Vector类, Stack类 Map结构的集合类: HashMap类,Hashtable类 ...

  4. Java的集合类

    转自:Q.Mr的博客 http://www.cnblogs.com/zrtqsk/p/3472258.html (本人第一次写博客,部分内容有参照李刚老师的疯狂java系列图书,如有遗漏错误,请多指教 ...

  5. java 复习003 之排序篇

    由java 复习003跳转过来的C语言实现版见some-sort-algorithms 快速排序(不稳定 O(n log n)) package vell.bibi.sort_algorithms; ...

  6. java复习(1)---java与C++区别

    [系列说明]java复习系列适宜有过java学习或C++基础或了解java初步知识的人阅读,目的是为了帮助学习过java但是好久没用已经遗忘了的童鞋快速捡起来.或者教给想快速学习java的童鞋如何应用 ...

  7. 首先java中集合类主要有两大分支

    本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理. Java中的集合类包含的内容很多而且很重 ...

  8. Java复习11. 单例编程

    Java复习11. 单例编程 1.最简单的写法,那个方式是线程不安全的 public class Singleton {     private static Singleton instance; ...

  9. Java复习9网路编程

    Java 复习9网路编程 20131008 前言: Java语言在网络通信上面的开发要远远领先于其他编程语言,这是Java开发中最重要的应用,可以基于协议的编程,如Socket,URLConnecti ...

随机推荐

  1. MySQL分表

    一.概念 1.为什么要分表和分区?日常开发中我们经常会遇到大表的情况,所谓的大表是指存储了百万级乃至千万级条记录的表.这样的表过于庞大,导致数据库在查询和插入的时候耗时太长,性能低下,如果涉及联合查询 ...

  2. .NET 基础 一步步 一幕幕[面向对象之堆、栈、引用类型、值类型]

    堆.栈.引用类型.值类型 内存分为堆和栈(PS:还有一种是静态存储区域 [内存分为这三种]),值类型的数据存储在栈中,引用类型的数据存储在堆中. 堆.栈: 堆和栈的区别: 栈是编译期间就分配好的内存空 ...

  3. HTML <dl> 标签

    <html><body><h2>一个定义列表:</h2><dl>   <dt>计算机</dt>   <dd&g ...

  4. 金蝶KIS专业版替换SXS.dll 遭后门清空数据被修改为【恢复数据联系QQ 735330197,2251434429】解决方法 修复工具。

    金蝶KIS专业版 替换SXS.dll 遭后门清空数据(凭证被改为:恢复数据联系QQ 735330197,2251434429)恢复解决方法. [客户名称]:山东青岛福隆发纺织品有限公司 [软件名称]: ...

  5. 间隔Ns请求某函数并且有timeout

    实现方案: 1. 递归调用 2.timer:apply_interval() 3.gen_server来写 时间timeout怎么实现: 1.开始时间存入ets表中 2.put,get方法放入进程字典 ...

  6. Float 的那些事

    css float 定义元素浮动到左侧或者右侧.其出现的本意是让文字环绕图片而已. left.right.inherit(从父级元素获取float值).none 一.浮动的性质 1. 包裹性 disp ...

  7. HDU ACM-Steps

    HDU ACM-Steps RECORD Chapter 1 Section 1 暖手题 1.1.1 A+B for Input-Output Practice (I) #include <st ...

  8. git commit

    使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中. Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地 ...

  9. Web.config 文件中的 system.webServer

    Web.config 文件中的 system.webServer 节用于指定适用于 Web 应用程序的 IIS 7.0 设置.system.WebServer 是 configuration 节的子级 ...

  10. Winsock - 1 - Winsock API

    Winsock Winsock API Winsock是网络编程接口,而不是协议. 网络原理和协议 建立Winsock规范的主要目的是提供一个与协议无关的传送接口. Winsock将网络编程接口与具体 ...