1、  集合特点:元素类型不同、集合长度可变、空间不固定

2、  java中对一些数据结构和算法进行了封装即集合。集合也是一种对象,用于存储、检索、操作和传输对象。

3、  JCF(Java Collections Framework)是JavaSE中包含的由一组类和接口组成的Java集合框架,其主要功能是用来将存储的数据以某种结构组织,并以特定的方式来访问这些数据,其目标是提供一个处理对象集合的通用框架,减少程序员处理不同对象集合时的编码量。

4、  集合框架包含三个内容:接口、实现类、算法。

Collection是List和Set的父接口。

List的接口特点:线性,元素可以重复。

Set接口的特点:元素不可重复。

Map集合:一个元素包含两个对象(键对象和值对象),而且键不能重复。

5、  集合和数组的区别:

  • 集合中只能存放对象的引用,数组可以是基本类型,可以是引用类型;
  • 集合的长度可以随元素多少而变化,数组创建好后长度不能改变;
  • 集合算法比较丰富,可以省去开发者很多编码,数组算法有限。

6、  for循环遍历,只能用于List集合;迭代器方式(Iterator),得到迭代器的算法接口;for each遍历循环。

7、  List三个实现类的区别:

  • ArrayList:底层部分由数组实现,遍历速度快,中间插入或删除元素速度慢。
  • Vector:和ArrayList类似,底层也由数组实现,但它是线程安全的类,效率较低。
  • LinkedList:采用双向链接实现,存放于不连续的内存空间,每个元素除了存放数据外,还要存放上一个和下一个元素的地址。遍历速度慢,中间插入、删除速度快。

8、  Set实现类的区别:

  • HashSet:将元素按Hash码排列;
  • LinkedHashSet:将元素加入顺序排列;
  • TreeSet:可以将元素按指定规则进行排序。

9、  Map实现类的区别:

  • HashMap:元素按键对象的Hash码排列,线程不安全,允许null键和null值;
  • Hashtable:元素按键对象的Hash码排列,线程安全,不允许null键和null值;
  • TreeMap:元素按照指定的规则排列。

10、              Map接口的优势:便于查找(根据键对象,找到值对象,如果键不存在,返回null)。

11、              当我们需要将对象存入基于哈希算法的HashSet和HashMap中时,需要同时重写equals()方法和hashCode()方法,并且保证当两个对象用equals()方法比较结果为true时,这两个对象的hashCode()方法的返回值相等。

12、              实现了Comparable接口的类,可以实现自然排序。如果要自定义排序,就要使用Comparator接口。

13、              如果编写的类实现了Comparable接口,那么这个类应该重写compareTo()、equals()和hashCode()方法,保证CompareTo()和equals方法采用相同的比较规则,来比较两个对象是否相等。

14、              泛型:就是允许在定义类、接口时指定类型形式参数,这个类型形式参数将在声明变量、创建对象时确定(即传入的实际参数)。通过泛型将参数类型化以后,我们就可以强迫程序在编译期就检查从集合中取得的数据的类型,以达到数据安全的目的。

java 面向对象编程-- 第15章 集合框架的更多相关文章

  1. java面向对象编程— —第七章 继承

    7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...

  2. java面向对象编程——第四章 类和对象

    OO:面向对象 OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计 结构化编程:从顶向下,将一个大问题分解成更小的任务,然后为每一个更小的任务编写一个过程.最后程序员会编写一个主过程来启 ...

  3. java面向对象编程——第五章 对象的行为

    5.1 方法调用栈 当一个方法被调用时,将导致控制流程跳转到被调用的方法.然后,控制流程执行方法中的语句.当然,被执行的方法可能会调用其它方法,导致控制流程跳转到其它方法.所有的方法调用都维护在一个称 ...

  4. java面向对象编程——第六章 数组

    1.数组概述 数组是存储在一个连续的内存块中的元素集合.数组中的每个元素必须是相同的数据类型,并且通过索引进行区分.数组中的第一个元素的索引为0. 在java中,创建数组有两个步骤: 声明一个对数组的 ...

  5. java 面向对象编程-- 第十三章 反射、类加载与垃圾回收

    1.狭义JavaBean规范 Javabean必须包含一个无参数的public构造方法,方便通过反射的方式产生对象. 属性必须都是私有的. Javabean必须包含符合命名规范的get和set方法,以 ...

  6. java面向对象编程—— 第三章 程序流程控制

    3.1流程控制 三种基本技术可以改变程序的控制流程: ①   调用方法:调用方法将导致控制流程离开当前方法,转移到被调用的方法: ②   选择:java中有两种做出选择的机制:if/else语句和sw ...

  7. Java的编程逻辑--15章 并发基础

    1.run()和start()的区别 2.线程的基本属性和方法 id:一个递增的整数,每创建一个线程就加一 name 优先级:从1到10,默认为5,会映射到系统中的优先级.数字越大,要优先级越高 状态 ...

  8. Java面向对象程序设计第15章5

    5. 利用URLConnetction对象编写程序返回某网站的首页,并将首页的内容存放到文件当中. import java.net.*; import java.io.*; public class ...

  9. java 面向对象编程 第20章 XML技术解析

    1.  XML:extended Markup Language  可扩展标记语言,利用标签和子标签方式描述数据. 2.  声明<?xml version=”1.0”?>版本号 注释< ...

随机推荐

  1. IO端口和IO内存的区别及分别使用的函数接口

    每个外设都是通过读写其寄存器来控制的.外设寄存器也称为I/O端口,通常包括:控制寄存器.状态寄存器和数据寄存器三大类.根据访问外设寄存器的不同方式,可以把CPU分成两大类.一类CPU(如M68K,Po ...

  2. 算法_栈与队列的Java链表实现

    链表是一个递归的数据结构,它或者为null,或者是指向一个结点的引用,该结点含有一个泛型的元素和指向另一个链表的引用.可以用一个内部类来定义节点的抽象数据类型: private class Node ...

  3. UI设计基础百科

    摘自:http://www.csdn.net/article/2013-09-10/2816892-iOS-dev-tools-design 我的原型设计流程 这是一份UX原型设计流程,用来探索交互设 ...

  4. overflow:auto/hidden的应用

    一.自适应两栏布局 <!DOCTYPE html><html lang="zh-CN"><head> <meta charset=&quo ...

  5. 简析 addToBackStack使用和Fragment执行流程

    在使用Fragment的时候我们一般会这样写: FragmentTransaction transaction = getSupportFragmentManager().beginTransacti ...

  6. vi编辑器简单应用(摘抄)

    摘抄于 vi编辑器的使用 (2) (3) 1 vi编辑器的基本使用 1.1 vi的启动 打开: $ vi example.c 只读打开 $ vi –R example.c 1.2 vi的工作模式 1. ...

  7. 【转载】【Centos linux系统】命令行(静默)安装oracle 11gR2

    [原文]:http://blog.chinaunix.net/uid-23886490-id-3565998.html 一.安装前准备 1.内存及swap要求 至于swap如何添加,后文将提到 gre ...

  8. 关于时区的时间的详解,比如UTC\GMT等

    UTC 和 GMT 及 北京时间的关系 UTC和GMT,这两者几乎是同一概念.它们都是指的格林尼治标准时间,只不过UTC的称呼更为正式一点.两者的区别在于前者是一个天文 上的概念,而 后者是基于一个原 ...

  9. 转!!java中关键字volatile的作用

    用在多线程,同步变量. 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B.只在某些动作时才进行A和B的同步.因此存在A和B不一致的情况.volatile就是用来 ...

  10. entity refenrece 在views中的运用

    在一个content type中有一个field是entity reference, 那么这个字段的设置过程中会指定一个entity type和content type和一个具体内容的选择器, 然后到 ...