一.什么是集合

集合是对象的集合,就像数组是数的集合。集合是一种容器,可以存放对象(可以是不同类型的对象)。

二.集合的优点(为什么要用集合)

当然,在java里,可以使用数组来存放一组类型相同的对象。但是数组存放对象有两个缺点(集合优点):

  1. 数组大小是固定的:数组的一旦创建,大小则是固定的。在要存放的对象个数不可知或者超过数组容量的情况下,不适用。
  2. 数组存放的对象个数不可知:数组的内存放了多少个对象不可以得知。

三.集合的实现

java中集合主要由两个接口实现:CollectionMap,Collection又有两个子接口:SetList

Collection接口

|-------List接口

|-------ArrayList类(主要实现类,类似数组),LinkedList类(类似链表),Vector类(线程安全的,不过比较老,不常用)

|-------Set接口(下面的类实现了Collection接口,基本上没有添加新方法)

|-------HashSet(主要实现类,利用该类,需要重写equals()方法和hashCode()方法)

|-------LinkedHashSet(采用链表实现的hashset,遍历的时候按照添加的顺序)

|-------TreeSet(只能存放同类型,同时是有序的,此处的有序只按照添加对象的指定顺序。例如String按照字符串从小到大顺序,用的时候需要实现                                             java.lang.Comparable接口中的compareTo(Object o)方法,如果修改类不方便或者希望用一个通用的比较方法去比较多种对象,则可以创建一个实                                     现了Comparator接口的Comparator对象,并重写compare()方法,再在创建TreeSet接口的对象时构造器调用该对象)

Map接口

|-------HashMap,LinkedHashMap,TreeMap,Hashtable

各个接口的特点:

Set:元素无序,不可重复。SortedSet是一个按照升序排列元素的Set。

List:元素有序,可重复。提供了按照索引访问的方式。可以看作“动态数组”,

Map:具有映射关系“key-value”的键值对。一个键对应一个值,使用时根据键来寻找值,所以键不可重复,值可重复。

注:这里对无序、有序的理解:是指元素在内部实现的存储方式不同,有序例如:数组,指针。无序例如:哈希表。

下图为Collection接口继承树:

下面好像要分别来讲下List,Set,Map接口了,算了,另开一篇再讲吧~

Java学习手记1——集合的更多相关文章

  1. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  2. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  3. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  4. Java学习日记-10 集合

    集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...

  5. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  6. Java学习:单列集合Collection

    集合 学习集合的目标: 会使用集合存储数据 会遍历集合,把数据取出来 掌握每种集合的特性 集合和数组的区别 数组的长度是固定的.集合的长度是可变的. 数组中存储的是同一类型的元素,可以存储基本数据类型 ...

  7. 【Java学习笔记】集合转数组---toArray()

    package p2; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ...

  8. 【Java学习笔记】<集合框架>定义功能去除ArrayList中的重复元素

    import java.util.ArrayList; import java.util.Iterator; import cn.itcast.p1.bean.Person; public class ...

  9. Java学习日记-11 集合(1)

    Collection接口集合中存储的只是对象的引用,不是对象本身. 1.ArrayList<E>类1.1ArrayList和Collection的关系 public interface L ...

随机推荐

  1. java中采用dom4j解析xml文件

    一.前言 在最近的开发中用到了dom4j来解析xml文件,以前听说过来解析xml文件的几种标准方式:但是从来的没有应用过来,所以可以在google中搜索dmo4j解析xml文件的方式,学习一下dom4 ...

  2. ZeroMQ接口函数之 :zmq_pgm – ØMQ 使用PGM 进行可靠的多路传输

    ZeroMQ API 目录 :http://www.cnblogs.com/fengbohello/p/4230135.html ——————————————————————————————————— ...

  3. dede调用img图片

    1.默认的index.htm调用: {dede:arclist row='3' titlelen='30' typeid='1'} <div class="swiper-slide&q ...

  4. scala shuffle

    val arr = (0 to 100).map(_ * 1d) /// 下面这一步只能用to不能用until,scala里面实现返回的两个Range继承路径不同,不能混用 val a_shuffle ...

  5. 利用activeX控件在网页里自动登录WIN2003远程桌面并实时控制

    首先要自己配置并打开受控端的WEB远程桌面服务,这个在“添加/删除windows组件”里有,我只在windows 2003 server里试过,没试过XP.下面我们在客户端安装微软提供的远程桌面客户端 ...

  6. ANDROID开发实用小工具

    分享一些 Android开发中的实用小工具,你有发现好工具吗? 来这里分享一下呗 一.find bugs 静态检查工具 http://findbugs.sourceforge.net/ FindBug ...

  7. Graph Cuts初步理解

    一些知识点的初步理解_8(Graph Cuts,ing...) Graph cuts是一种十分有用和流行的能量优化算法,在计算机视觉领域普遍应用于前背景分割(Image segmentation).立 ...

  8. openstack-glance

    1.glance 功能 对外提供image的管理功能 2.glance架构 api : REST API,提供对外调用接口 registry: 数据库管理逻辑处理 backen:image的实际存放位 ...

  9. Mock之easymock, powermock, and mockito

    easymock, powermock, and mockito Easymock Class Mocking Limitations To be coherent with interface mo ...

  10. 使用git@osc管理现有项目

    首先安装git和powershell集成git工具 参考 http://www.cnblogs.com/kreo/p/4685988.html 打开windows powershell,进入项目目录, ...