集合(collection):
使用存储实例的变长的容
 容器名    存储的元素类型     长度
  数组       基本和引用            定长
  集合        引用                      变长
 
集合的框架结构:
分为List 和 Set 子接口
List的实现类:ArrayList 和 LinkedList 和Vector
Srt的实现类: HashSet 和 TreeSet 
和 LinkedHashSet
 
 
Map:
实现类: HashMap 和 LinkedHashMap
和 TreeMap
 
 
Collection接口:
Collection c=new ArrayList();
c.add();
 
List接口的存储特点:
元素添加的顺序是底层存储的顺序
不排重复
方法:
get(int index):根据下标返回对应值
add(int index,E e):在指定位置插入元素,后续元素会自动后移
set(int index,E e):替换指定的元素
 
 
ArrayList实现类的特点:
1.底层存储的元素使用的数据结构是数组;
2.优点:元素查询速度快
3.缺点:添加,修改,删除元素效率低
List e=new ArrayList();
e.add();
 
LiskedList实现类的特点:
1.底层元素使用数据结构是双向链表
2.优点:添加,修改.删除元素效率高
3.缺点:元素查询慢
 
Collections:
是一个工具类,用于操作List集合
与Arrays类似
Collection:是一个接口,是List,Set的父类
 
 
 
Set接口:
不能重复
 
 
HashSet实现类:底层存储的元素使用的数据结构是Hash表;
无序的(元素添加顺序与底层存储顺序不同)
Set elements =new HashSet();
elements.add("张三");
 
LinkedHashSet实现类:
底层存储的元素使用的数据结构是双向链表;
有序的(元素添加顺序与底层存储顺序相同)
排重
没有重新HashCode和equlas,会打印2个对象,重新后不能重复实例,只要new,就会在全新空间开辟存储空间存储实例
 
 
TreeSet实现类:
底层存储的元素使用的数据结构是二叉树;
有序的(根据升序排序(字典的顺序)),
排重
必须具备可比性
 比较规则:实现Comprable接口,重写compreTo方法,返回0,与实例比较
 
Map集合:
元素以键值对存在(Key-value)
都是引用类型
无序的,底层存储的数据结构是hash表
根据键排除重复的,与值无关
 
HashMap实现类:
LinkedhashMap实现类:
TreeMap实现类:
weakHashMap实现类:
 
Map m=new HashMap();
m.put(1); //添加
m.clear(); //清除
boolean b=m.containsKey(1); //判断是否存在元素,返回true
boolean b=m.containsValue(Object value); //判断是否存在元素
 
Set< Map.Entry<K,V> >:将map集合所有的元素存放在set集合中
 
集合的遍历:
方法一:转为数组:toArray()
方法二:迭代器Iterator
每个Collection的实现类对象,都要实现iterator(),该方法表示获取该容器上的迭代器对象,相当于在容器上放游标,通过判断是否有下一个元素,获取。
hasNext()-->boolean,
next()-->E,
方法三:增强for循环
方法四:List特有:普通for循环:get(index)-->E
 
1、 在类集中存放单值的最大父接口是 Collection ,存放一对值的最大父接口是 Map 
2、Set 接口保存的数据是不允许重复的,并且 TreeSet 子类是可以排序的,根据 Comparable接口 
3、 Java类集可以使用的输出方式是: Iterator 、 ListIterator 、 Enumeration 、 foreach  
4、 在Java中实现栈操作的类是Stack  
3、 Set集合中的内容是不允许重复的,Java依靠什么来判断重复对象?
答: Java依靠Object类中的hashCode()和equals()方法来判断重复对象。
4、 TreeSet类是允许排序的,Java依靠什么进行对象的排序操作?
答: 在TreeSet类中依靠Comparable接口来进行排序。
5、 简述Collection和Collections的区别。
答: Collection是一个接口,用于定义集合操作的标准、Collections是一个工具类,可以操作任意的集合对象。

Collection的更多相关文章

  1. python 排序 归并排序

    算法思想 迭代法: 归并算法一共有两种思想,笼统的说,这两种思想的区别就在于一种不分割未排序的序列(直接将序列看为n个个数为1的子序列),这种称为---迭代法 直接从队头开始,两两合并为一个个数为2的 ...

  2. java.util.Map按照key值合并的value的Collection 集合中。

    用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /**  * @author Shalf  */ public class MapUtil { /** * 把partMa ...

  3. Unity性能优化(3)-官方教程Optimizing garbage collection in Unity games翻译

    本文是Unity官方教程,性能优化系列的第三篇<Optimizing garbage collection in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

  4. [LeetCode] Merge Intervals 合并区间

    Given a collection of intervals, merge all overlapping intervals. For example, Given [1,3],[2,6],[8, ...

  5. 【java基础】 合并两个类型相同的list

    将两个类型相同的list合并,可以用 addAll(Collection<? extends E> c) import java.util.ArrayList; import java.u ...

  6. lucene 内存索引 和文件索引 合并

    IndexWriter.addIndexes(ramDirectory); http://blog.csdn.net/qq_28042463/article/details/51538283 在luc ...

  7. Scala Collection简介

    Traversable vs Iterable Traversable, Iterable 都是trait. Iterable 继承 Traversable. Traversable: 支持forea ...

  8. Linux System Log Collection、Log Integration、Log Analysis System Building Learning

    目录 . 为什么要构建日志系统 . 通用日志系统的总体架构 . 日志系统的元数据来源:data source . 日志系统的子安全域日志收集系统:client Agent . 日志系统的中心日志整合系 ...

  9. WCF分布式开发步步为赢(8):使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

    数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NE ...

  10. sort-based shuffle的核心:org.apache.spark.util.collection.ExternalSorter

    依据Spark 1.4版 在哪里会用到它 ExternalSorter是Spark的sort形式的shuffle实现的关键.SortShuffleWriter使用它,把RDD分区中的数据写入文件. o ...

随机推荐

  1. 【Alpha版本】冲刺-Day10

    队伍:606notconnected 会议时间:11月18日 会议总结 张斯巍(433) 今天安排:完成剩余界面的设计,小修小补 完成度:100% 遇到的问题:无 感想:因为自己是负责界面美工部分的, ...

  2. mysql取前取后

    SELECT * FROM (SELECT * FROM 表 WHERE id<居中的ID ORDER BY id DESC LIMIT 5) as A UNION all SELECT * F ...

  3. 摄像头视频捕捉(简单通用--通过IsampleGrabberCB实现)

    前言 DirectShow是微软公司提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布.DirectShow为多媒体流的捕捉和回放提供了强有力的支持.用Direct ...

  4. 序列化对象为xml字符串

    /// <summary>    /// 序列化对象为xml字符串    /// </summary>    /// <param name="obj" ...

  5. 【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别

    From the previous posts, I have analysed 4 different Docker multi-host network solutions - Calico, F ...

  6. sys/types.h fcntl.h unistd.h sys/stat.h

    sys/types.h 是Unix/Linux系统的基本系统数据类型的头文件,含有size_t,time_t,pid_t等类型. 在应用程序源文件中包含 <sys/types.h> 以访问 ...

  7. javax.validation.ConstraintViolationException---Hibernate后台实体校验

    javax.validation.ConstraintViolationException ... 71 moreCaused by: javax.validation.ConstraintViola ...

  8. [Java基础] Java中List.remove报错UnsupportedOperationException

    Java中List.remove(removeRange,clear类似) 报出 UnsupportedOperationException 的错误.原来该List是一个AbstractList,不支 ...

  9. Mybatis关联查询(嵌套查询)

    上一篇文章介绍了基于Mybatis对数据库的增.删.改.查.这一篇介绍下关联查询(join query). 三张表:user article blog 表的存储sql文件: /* Navicat My ...

  10. solr连接数据库配置

    一般要搜索的信息都是被存储在数据库里面的,但是我们不能直接搜数据库,所以只有借助Solr将要搜索的信息在搜索服务器上进行索引,然后在客户端供客户使用. 一.链接数据库 1. SQL配置 拿SQL Se ...