集合(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. func_get_arg、func_get_args、func_num_args实现PHP伪重载

    今天在看书的时候,发现书上有这么一条:函数重载的替代方法——伪重载 确实,在PHP中没有函数重载这个概念,让很多时候我们无法进行一些处理,甚至有时候不得不在函数后面定义好N个参数在看到了func_ge ...

  2. BitMap算法应用:Redis队列滤重优化

    工作中有用到Redis滤重队列. 原来的方法如下: 方法一 为了保证操作原子性,使用Redis执行Lua脚本. 在脚本中的逻辑是,如果队列不超过某个数值,进行一次lrem操作(队列使用list结构), ...

  3. iOS上架ipa上传问题那些事

    iOS上架ipa上传问题那些事 原文: http://www.jianshu.com/p/1e22543285c2 字数513 阅读312 评论0 喜欢1 通过xcode直接打包上传,不会提示你的ip ...

  4. JQuery 菜鸟笔记(一)

    什么是JQuery JQuery是一个优秀的javascript类库,jQuery以其简洁.快速等优点征服了众多javascript开发者.jQuery使用户能更方便地处理DOM.events.实现动 ...

  5. 我常用的grep命令

    查找包含某个字符的行并保存在文件 grep -rn 'test' ./*.sql >test.sql -r 是递归查找 -n 是显示行号 在当前目录下的.sql结尾的文件中查找包含 test 字 ...

  6. ACM/ICPC 之 Unix会议室(POJ1087)

    采用EK算法解网络流经典题,本题构图思路比较明确. //Unix会议室插座转换 //网络流-EK算法 //Time:47Ms Memory:1188K #include<iostream> ...

  7. 快速上手制作Icon Font

    现在在提起Icon Font,已经不是什么新鲜的词汇了,网上已经有很多介绍它的文章,并且很多网站也已经将它用到,本篇主要是将制作Icon Font的整个流程整理一下,并且加入了自己在制作中遇到的问题, ...

  8. centos6.3安装python2.7, pip2.7, mysql

    参考: https://github.com/h2oai/h2o-2/wiki/Installing-python-2.7-on-centos-6.3.-Follow-this-sequence-ex ...

  9. python logging模块笔记

    1 ) 给logger定制了两个日志级别INFO和DEBUG,分别通过filehandler添加不同输出到不同文件,但如何让DEBUG里只有DEBUG的信息? 答案:可重写DEBUG对应的Fileha ...

  10. AE开发中对GDB以及shapefile的读取、对FeatureClass的相关操作

    读取gdb方法 private void btn_Click(object sender, EventArgs e) { FolderBrowserDialog dlg = new FolderBro ...