一、集合框架

对于不知道存储数量和更复杂的方式存储对象用集合框架。

其中有几个常用的接口和实现类:Collection父接口、List接口,Set接口,Map接口,

ArrayList实现类、LinkedList实现类、hashSet实现类、hashMap实现类

Collection集合框架的父接口,该接口存储的是一组不唯一,无序的对象。

Collection父接口下有两个子接口:

List接口:存储的数据是 不唯一的、有序的

Set接口 : 存储的数据是惟一的、无序的

List接口下也有两个实现类:

ArrayList类:长度可变的数组、连续的,对于查询、增加数据操作优先使用

LinkedList实现类:基于链表形式,对数据的插入和删除操作便捷。

Set接口的实现类:hashSet实现类、TreeSet实现类;

如果查找集合的元素,而不知道数据的索引且需要全部遍历的情况下,ArrayList的效率就很低下。

在java框架中提供了查找效率更高的集合类HashSet,是Set接口中最常用的实现类。

Map接口的实现类:HashMap实现类、TreeMap实现类

Map中保存的数据是:存储的是一组键值对(key-value),提供了key到value的映射,键是不可以重复的

Iterator接口

Iterator接口表示对集合进行迭代的迭代器,为集合而生。专门实现集合遍历,

需要用while循环遍历

提供了三个方法

hasNext():判断是否还有下一个元素,有就可以迭代,返回true

next():返回要访问的下一元素;

remove():从迭代器指向Collection中移除带带器返回的最后一个元素(可选操作)

在框架中提供了工具类

Collections操作集合框架的工具类

Arrays:操作数组的工具类

java基础--集合框架的认识的更多相关文章

  1. Java基础——集合框架

    Java的集合框架是Java中很重要的一环,Java平台提供了一个全新的集合框架.“集合框架”主要由一组用来操作对象的接口组成.不同接口描述一组不同数据类型.Java平台的完整集合框架如下图所示: 上 ...

  2. 十五、Java基础---------集合框架体系以及List

    在介绍集合之前先说一下数组,正如我们所知,数组是某一类型数据的集合,强调的是数据,而且必须单一:集合框架的不同之处在于存储的数据类型没有任何限制,既可以存储基本数据类型(会自动提升为相应的包装类)也可 ...

  3. 十七、Java基础---------集合框架之Map

    前两篇文章中介绍了Collection框架,今天来介绍一下Map集合,并用综合事例来演示. Map<K,V> Map<K,V>:Map存储的是键值对形式的元素,它的每一个元素, ...

  4. Java基础——集合框架(待整理)

    ArrayList 和 和 Vector 的区别 从代码的最终的操作形式上可以发现,代码的输出结果与之前是一样的,而且没有区别,但是两者的区别还在于其内部的组成上. No. 区别点 Vector Ve ...

  5. 十六、Java基础---------集合框架之Set

    写在前面的话,这篇文章在昨天就写好了,今天打开的时候一不小心将第二天的文章粘贴到了这篇文章,很不幸的是除了标题之外依然面目全非,今天带着沉痛的心情再来写这篇文章! 上篇文章介绍了Collection体 ...

  6. Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator

    为什么出现集合类? 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式. 数组和集合类同是容器,有何不同? 数组虽然也可以存储对 ...

  7. Java 基础 集合框架

    Java中的集合从类的继承和接口的实现结构来说,可以分为两大类: 1 继承自Collection接口,包含List.Set和Queue等接口和实现类. 2 继承自Map接口,主要包含哈希表相关的集合类 ...

  8. Java基础-集合框架-ArrayList源码分析

    一.JDK中ArrayList是如何实现的 1.先看下ArrayList从上而下的层次图: 说明: 从图中可以看出,ArrayList只是最下层的实现类,集合的规则和扩展都是AbstractList. ...

  9. Java基础-集合框架的学习大纲

    1.List 和 Set 的区别 2.HashSet 是如何保证不重复的 3.HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程环境下不安全)? 4.HashMap 的扩容过程 ...

随机推荐

  1. 温习排序算法(基于C指针)

    以前学过的数据结构课,貌似已经忘得一干二净了,偶然又翻起,书中最后一章详细介绍了7种排序算法,现在对其中4种做个总结.(为啥只总结4种,当然是因为偷懒,只想总结简单又常用的!) 先贴一张排序分类图: ...

  2. Cross-Origin跨域问题

    为什么会跨域,要先了解浏览器的同源策略SOP(Same Orign Policy)  https://segmentfault.com/a/1190000015597029 同源: 如果两个页面的协议 ...

  3. 前端 CSS 注释

    /*开头 */ 结尾 /*这是注释*/ <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  4. 个人常用的移动端浅灰底index.html

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. upCode

    更新源码 Sub main() Dim str As String str = "这是测试的字符串对话框" MsgBox str Sheets(1).Select End Sub

  6. MySQL学习——标识符语法和命名规则

    转自:http://blog.csdn.net/notbaron/article/details/50868485 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron ...

  7. cygwin 安装 apt-cyg

    apt-cyg apt-cyg is a Cygwin package manager. It includes a command-line installer for Cygwin which c ...

  8. 阿里云新老用户购买 2核8G云服务器5M带宽

    这次阿里云活动的力度还是很大的,2核8G云服务器5M带宽 3年才2070 ,还是很值的购买的. 也放一个我的团战队连接,欢迎大家一起拼低价 https://m.aliyun.com/act/team1 ...

  9. listener 监听 tomcat 容器的初始化和销毁

    为了简单,就写个统计Action 请求数量的例子: 1.首先写个 listener public class TestServletContextListener implements Servlet ...

  10. centos7 源码安装php7

    因为php安装需要编译,所以服务器应该保证gcc和g++环境的安装 1. 首先释放安装包: tar -xvzf php-7.0.5.tar.gz cd php-7.0.5 2. 接下来进行参数配置,配 ...