集合(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. Linux C 字符串输出函数 puts()、fputs()、printf() 详解

    一.puts() 函数详解 puts()函数用来向 标准输出设备 (屏幕)写字符串并换行,调用格式为: puts(s); 其中s为字符串变量(字符串数组名或字符串指针). puts()函数的作用与语 ...

  2. 使用git status快速commit

    提交之前使用git status可以看到将要提交的文件,如果想部分提交,需要单独commit.使用下面这句可以快速commit git commit `git status | grep 'mod' ...

  3. Codeforces VK CUP 2015 D. Closest Equals(线段树+扫描线)

    题目链接:http://codeforces.com/contest/522/problem/D 题目大意:  给你一个长度为n的序列,然后有m次查询,每次查询输入一个区间[li,lj],对于每一个查 ...

  4. BZOJ 4581: [Usaco2016 Open]Field Reduction

    Description 有 \(n\) 个点,删掉三个点后,求最小能围住的面积. Sol 搜索. 找出 左边/右边/上边/下边 的几个点枚举就可以了. 我找了 12 个点,统计一下坐标的个数,然后找到 ...

  5. 家庭路由器设置以及win10链接无线不显示登录密码 直接提示链接出错问题解决

    家庭路由器设置 网线插入WAN口,用网客户端接在LAN口,就是路由器模式 LAN→WAN设置:电脑→第二个路由器LAN→进入设置界面: 网络参数→WAN口设置→WAN口连接类型→动态IP→保存. 网络 ...

  6. JQuery Mobile 页面参数传递

    在单页模版中使用基于HTTP的方式通过POST和GET请求传递参数,而在多页模版中不需要与服务器进行通信,通常在多页模版中有以下三种方法来实现页面间的参数传递. 1.GET方式:在前一个页面生成参数并 ...

  7. RobotFrameWork(二)Ride简单使用及快捷键

    一.简单示例 注意:以下操作使用到快捷键的,请先确保没有与其他软件的快捷键设置冲突,比如sogou拼音.有道词典等等 1.启动ride 启动ride方法: 1)  通过界面图标 2)  dos命令行: ...

  8. Linux服务器模型及其对应的程序流程

    一.TCP循环服务器 TCP循环服务器一次只能处理一个客户端的请求,处理完成后,才能接受下一个客户端的请求,程序流程如下: socket(......);//创建套接字 bind(......);// ...

  9. swap的应用两个数的交换

    #include <stdio.h>//这儿表示的函数的输入输出头文件void swap(int x,int y);void swap_p(int *x,int *y);//表示调用一个方 ...

  10. PHP语句【变量、运算符表达式、语句】

    一.变量的方法.1.empty可以用empty的方法能够判断变量的值是不是为空.①如果我们看一下某一个变量是不是已经存在过了假如我们输出一下 var_dump (empty($a)); 返回值为tru ...