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. 浅谈Web前端浏览器兼容问题

    对于兼容最近一直困扰我,以前写的代码只是针对高质量用户来使用 不考虑IE7,8 这样的浏览器 ,但是最近我开发的时候必须要兼容,大喊一声我曹,没有办法,自己来吧! 所谓的浏览器兼容性问题,是指因为不同 ...

  2. Python高手之路【十】python基础之反射

    反射说简单点 --> 就是利用字符串的形式去对象(模块)中操作(寻找/检查/删除/设置)成员. 需求:由用户输入一个模块名,用户输入什么模块名,文件中就导入什么模块: 1:文件都在同一目录下的导 ...

  3. 校门外的树 OpenJudge 1.6.06

    06:校门外的树 总时间限制:  1000ms 内存限制:  65536kB 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0 ...

  4. hdu 3842 Machine Works(cdq分治维护凸壳)

    题目链接:hdu 3842 Machine Works 详细题解: HDU 3842 Machine Works cdq分治 斜率优化 细节比较多,好好体会一下. 在维护斜率的时候要考虑x1与x2是否 ...

  5. Help improve Android Studio by sending usage statistics to Google

    Please press I agree if you want to help make Android Studio better or I don't agree otherwise. more ...

  6. java基础:int和integer区别

    int是基础数据类型: integer是包装类,里面包含一些基础的方法,最常见的就是数据转换: 比如int转String: int a=0: String b=Integer.toString(a):

  7. 超赞网页背景效果-canvas-nest.js

    canvas-nest.js 是 canvas 上绘制的蜂窝状网站背景. 引入的时候的注意事项:js加载的时候需要保证body已经加载: 一个简单的demo: <!DOCTYPE html> ...

  8. NGINX----源码阅读----init配置脚本

    /auto/init init脚本负责初始化各种目录环境变量值. 1.make文件.源文件.头文件.配置头文件路径变量初始化. NGX_MAKEFILE=$NGX_OBJS/Makefile NGX_ ...

  9. 【ARM】S5PV210芯片的启动流程

    S5PV210芯片的设计者的思想 (1)芯片启动后执行iRom(BL0)的内容,进行时钟和看门狗等外设的初始化,将BL1和BL2拷贝到片内SRAM; (2)跳转到片内SRAM执行,完成外部SDRAM的 ...

  10. ios下iphone的plus下

    二维码能被长按识别,但因为某种原因识别区域发生了偏移 meta标签定义了默认缩放为一倍就能识别,不定义就不能识别. 网上是这么说的: meta标签定义了默认缩放为一倍就能识别,不定义就不能识别.于是我 ...