集合(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. PHPThumb处理图片,生成缩略图,图片尺寸调整,图片截取,图片加水印,图片旋转

    [强烈推荐]下载地址(github.com/masterexploder/PHPThumb). 注意这个类库有一个重名的叫phpThumb,只是大小写的差别,所以查找文档的时候千万注意. 在网站建设过 ...

  2. 为何Apache下.htaccess不起作用,Linux、Windows详解

    可能出现下面这三种的错误可能性: 第一种:启用 rewrite 和 .htaccess 设置 rewrite设置:找到apache的配置文件httpd.conf文件,找到:#LoadModule re ...

  3. 新语言代码高亮及Windows Live Writer插件开发

    最近在博客园做一些学习笔记.一个是看apple的swift官方书,另外一个是随学校课堂(SICP)学习scheme. 这两种语言都谈不上普及(或者说swift太新).博客园原来的windows liv ...

  4. 提高MYSQL百万条数据的查询速度

    提高MYSQL百万条数据的查询速度 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 nul ...

  5. JavaScript深入浅出6-函数和作用域

    慕课网教程视频地址:Javascript深入浅出 函数的概念:定义一次可调用多次的javascript代码段 创建函数:声明 function fuc(){}  声明前置   表达式 var fuc= ...

  6. linux 配置ssh免密码登陆本机

    1.安装 sudo apt-get install ssh 2.配置无密码登录 ssh-keygen -t rsa 遇到停顿按回车即可 进入/home/zeze/.ssh目录(隐藏目录,在winSCP ...

  7. time和datetime时间戳---python

    time模块 time模块提供各种操作时间的函数 说明:一般有两种表示时间的方式:        1.时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 2.以数 ...

  8. JSONObject.fromObject(map)(JSON与JAVA数据的转换)

    JSON与JAVA数据的转换(JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.) 上一篇文章中有这么 ...

  9. Mysql数据库的使用总结之Innodb简介(一)

       最近在对开发的软件的服务器部分制作安装包,但服务器部分需要有mysql数据库的支持.因此,采用免安装版的mysql策略:将mysql数据库需要的文件在安装程序中进行设置和打包即可.但也遇到了很多 ...

  10. ABAP BAPI 销售订单生产交货单函数

    TYPES: BEGIN OF ty_so,          vbeln LIKE  vbap-vbeln,          posnr LIKE  vbap-posnr,        END  ...