2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文章,每天发布一篇,介绍一种重构手段,连续发文31篇,故得名“重构三十一天:你应该掌握的重构手段”.此外,Sean Chambers还将这31篇文章[即31种重构手段]整理成一本电子书, 以下是博客原文链接和电子书下载地址: 博客原文:http://lostechies.com/seanchamber…
理解:本文中的“封装条件”是指条件关系比较复杂时,代码的可读性会比较差,所以这时我们应当根据条件表达式是否需要参数将条件表达式提取成可读性更好的属性或者方法,如果条件表达式不需要参数则可以提取成属性,如果条件表达式需要参数则可以提取成方法. 详解:重构前code using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; namesp…
理解:封装集合就是把集合进行封装,只提供调用者所需要的功能行借口,保证集合的安全性. 详解:在大多的时候,我们没有必要把所有的操作暴露给调用者,只需要把调用者需要的相关操作暴露给他,这种情况中下我们就要对其进行封装,只把调用者需要的部分暴露出来. 我们先看一个例子: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _31DaysOfReflactor {…
转自:http://www.cdtarena.com/javapx/201306/8891.html [plain] view plaincopyprint?01.在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结构中熟知的.例如Map,Set,List等.并且Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负…
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素.Collection是一次添加一个元素. iterator是迭代获取元素 第一大类:Iterator 迭代器是一个对象,它是遍历并选择序列中的对象. 说比了,就是给后面的Collection接口里的实现类使用搭配的,为了取值罢了.    Iterator 只能正向遍历集合,适用于获取移除元素. Li…
集合(Collection) 集合就是Java中提供的一种 空器,可以用来存储多个数据. 集合和数组都是一个容器,它们有什么区别呢? 数组的长度是固定的,集合的长度是可变的. 数组中存储的是同一类型的数据,并且也可以存储基本类型数据,但是集合中存储的都是对象,并且没有泛型的时候,还可以存储不同的对象. Collection集合框架 Collection是一个集合类的顶级接口,所有的集合类的接口都是他的子类,或者实现类. List接口: 1.在序的集合 2.允许存储生活重复的元素 3.有索引,可以…
Collection是List,Queue和Set接口的父接口,该接口里定义的方法即可用于操作Set集合,也可以用于List和Queue集合.Collection接口里定义了如下操作元素的方法. boolean add(object o):该方法用于向一个集合中里添加一个元素.如果集合对象被添加操作改变了,则返回true. boolean addAll(Collection c):将集合c中的所有元素添加到指定的集合中.如果集合对象被添加操作改变了,则返回true. void clear():清…
集合又称之为容器存储对象的一种方式 •数组虽然也可以存储对象,但长度是固定的:显然需要可变长度的容器 集合和数组的区别?                 A:长度区别                         数组固定                         集合可变                 B:内容区别                         数组可以是基本类型,也可以是引用类型                         集合只能是引用类型         …
1.集合简介 数学定义:一般地,我们把研究对象统称为元素.把一些元素组成的总体叫做集合. java集合定义:集合就是一个放数据的容器,准确的说是放数据对象引用的容器. java中通用集合类存放于java.util包中. 2.集合的实现 实现集合(Collection)的数据类型有三种: 1.集(set)无序.不重复 Set里存放的对象是无序,不能重复的,集合中的对象不按特定的方式排序,只是简单地把对象加入集合中. 例如:HashSet 特例:TreeSet 有序的 2.列表(list)有序.可重…
对象数组的内存图解: 集合的继承体系图解: * 数组和集合的区别? * A:长度区别 * 数组的长度固定 * 集合长度可变 * B:内容不同 * 数组存储的是同一种类型的元素 * 而集合可以存储不同类型的元素 * C:元素的数据类型问题 * 数组可以存储基本数据类型,也可以存储引用数据类型 * 集合只能存储引用类型 * * 刚说过集合是存储多个元的,但是呢,存储多个元素我们也是有不同需求的:比如说,我要这多个元素中不能有相同的元素, * 再比如说,我要这多个元素按照某种规则排序一下.针对不同的需…
集合(Collection)是一个Backbone对象,用来组织和管理多个模型,它不仅仅是一个javascript数组,还提供了专门的方法来对集合进行排序.过滤和遍历,集合可以方便的与REST服务器进行通信. RoomCollection=Backbone.collection.extend({model: RoomModel}); var room1=new RoomModel({name:'test1'}); var room2=new RoomModel({name:'test2'});…
Java基础-引用数据类型之集合(Collection) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么出现集合类 面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就可以将对象进行存储,集合就是存储对象最常用的一种方式(容器),Java中集合也是类,真正用来存储东西的是某种集合类的实例对象. 二.集合类的特点 数据和集合类都是容器,有何不同?集合类的特点又是什么呢? 1>.数组的特点 a>.长度是固定的: b>.可以存储基本数据类型:…
Java学习这么久,打算这几天回顾下java的基本知识点,首先是集合. 一.常用集合类关系图 Collection |___List 有序,可重复 |___ArrayList  底层数据结构是数组,增删慢,查询快:线程不安全,效率高 |___LinkedList  底层数据结构是链表,增删快,查询慢:线程不安全,效率高 |___Vector   底层数据结构是数组,增删慢,查询快:线程安全,效率低 |___Set 无序,不可重复 |___HashSet |___TreeSet Map |___H…
一.集合(Collection) 1.简介 Collection是一个接口,其定义了集合的相关功能方法.Collection继承了Iterable接口,而Iterable接口有一个方法Iterator<T> iterator(); 其中Iterator也是一个接口,里面定义了3个方法boolean hasNext();E next(); void remove(); 2.Collection派生接口List和Set List:可重复集,顾名思义,该集合中是允许存放重复元素的,那么何为重复元素?…
集合概述 集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体.集合被用于存储.获取.操纵和传输聚合的数据. 使用集合的技巧 看到Array就是数组结构,有角标,查询速度很快. 看到link就是链表结构:增删速度快,而且有特有方法.addFirst: addLast:removeFirst(): removeLast(): getFirst():getLast(): 看到hash就是哈希表,就要想到哈希值,就要想到唯一性,就要想到存入到该结构的中的元素必须覆盖ha…
上一篇<Java中的集合框架-Collection(一)>把Java集合框架中的Collection与List及其常用实现类的功能大致记录了一下,本篇接着记录Collection的另一个子接口Set及其实现类. 一,Collection子接口Set Set接口与List接口同时是Collection接口的子接口,但两者区别还是很大的. 首先,Set里的方法与Collection里的方法完全一样: 其次,Set是无序的,即Set的存储与取出顺序可能不一致:演示如下: private static…
从上面的集合框架图可以看到,Java 集合框架主要包括两种类型的容器,一种是集合(Collection),存储一个元素集合,另一种是图(Map),存储键/值对映射.Collection 接口又有 3 种子类型,List.Set 和 Queue,再下面是一些抽象类,最后是具体实现类,常用的有 ArrayList.LinkedList.HashSet.LinkedHashSet.HashMap.LinkedHashMap 等等. 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内…
Java集合分为Collection和Map,Collection又分为List.Set. List中有ArrayList.LinkedList和Vector:Set中又分为HashSet和TreeSet.Map中有HashMap和TreeMap.他们的分类结构关系如下: 分类结构 1. Collection 1.1 List 1.1.1 ArrayList 1.1.2 LinkedList 1.1.3 Vector 1.2 Set 1.2.1 HashSet 1.2.2 TreeSet 2.…
1.概述: @white Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象)"丢进"该容器中. 2.Java集合大致可以分4类: @white Set:代表无序.不可重复的集合: List:代表有序.重复的集合: Map:代表具有映射关系的集合 Queue:代表一种队列集合实现:(Java 5增加) 3.Java集合和数组的区别 @white 1.长度: 数组:只能保存定长的数据,长度在初始化时指定: 集合:可保存数量不确定的数据. 2.保存数据类型: 数…
Java集合框架 Collection Collection是一个接口 步骤 1 : Collection Collection是 Set List Queue和 Deque的接口 Queue: 先进先出队列 Deque: 双向链表 注:Collection和Map之间没有关系,Collection是放一个一个对象的,Map 是放键值对的 注:Deque 继承 Queue,间接的继承了 Collection…
集合(Collection)类是专门用于数据存储和检索的类.这些类提供了对栈(stack).队列(queue).列表(list)和哈希表(hash table)的支持.大多数集合类实现了相同的接口. 集合(Collection)类服务于不同的目的,如为元素动态分配内存,基于索引访问列表项等等.这些类创建 Object 类的对象的集合.在 C# 中,Object 类是所有数据类型的基类. 各种集合类和它们的用法 下面是各种常用的 System.Collection 命名空间的类.点击下面的链接查看…
集合(Collection)类型也是Java标准库中被使用最多的类型. List ArrayList LinkedList 对于自定义的对象,需要正确覆写 equals方法 参看7.3 例子 Map 另外还有EmunMap 参看7.6 HashMap 将自定义的对象作为key,需要正确覆写 (1) equal()方法.(2) hashCode()方法 TreeMap TreeMap不使用equals()和hashCode(),不用对这两个方法进行覆写 将自定义的对象作为key,需要实现Compa…
个人博客网:https://wushaopei.github.io/    (你想要这里多有) 1.数组和集合 1.1 内存中对数据进行存储和管理的“容器”:数组,集合 1.2 数组存储的特点和缺点 特点: 数组一旦创建成功,长度不可变 元素存储的类型就是数组声明时的类型. 缺点: 数组的长度不可变 数组的API属性比较少,比如没有  增,删,改,插 等... 存储的元素是序的可重复的,对无序的不可重复的无能为力. 集合存储的优点: 长度可变 底层的数据结构比较丰富.比如:数组,链表,红黑树 集…
1 package com.j1803.collectionOfIterator; 2 import java.util.ArrayList; 3 import java.util.Collection; 4 import java.util.HashSet; 5 public class CollectionTest { 6 public static void main(String[] args) { 7 Collection c1=new ArrayList(); 8 //添加元素 9…
封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类型为集合,或者方法返回类型为集合时,如果符合以下条件,我们就可以考虑将集合进行封装: 返回的数据仅用于展示 当集合的Add,Remove方法包含其它业务逻辑 向类的调用者隐藏类中的完整集合有如下几个好处: 保证返回的集合数据不会被修改. 在Add, Remove方法中可以添加验证,日志或其他业务逻辑…
封装就是将相关的方法或者属性抽象成为一个对象. 封装的意义: 对外隐藏内部实现,接口不变,内部实现自由修改. 只返回需要的数据和方法. 提供一种方式防止数据被修改. 更好的代码复用. 当一个类的属性类型为集合,或者方法返回类型为集合时,如果符合以下条件,我们就可以考虑将集合进行封装: 返回的数据仅用于展示 当集合的Add,Remove方法包含其它业务逻辑 向类的调用者隐藏类中的完整集合有如下几个好处: 保证返回的集合数据不会被修改. 在Add, Remove方法中可以添加验证,日志或其他业务逻辑…
集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储. 集合特点:1,用于存储对象的容器.2,集合的长度是可变的.3,集合中不可以存储基本数据类型值. 集合容器因为内部的数据结构不同,有多种具体容器.不断的向上抽取,就形成了集合框架. 框架的顶层Collection接口:java.util Collection的常见方法: 1,添加. boolean add(Object obj): boolean addAll(Collection coll):…
业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一章-初识java JAVA基础第二章-java三大特性:封装.继承.多态 JAVA基础第三章-类与对象.抽象类.接口 说起集合框架,很多面试官在面试初级javaer的时候也是很喜欢问的一个知识点 我们先上一张图看看 从上面的关系图中,我们可以看到从上往下分呢~最上面的是接口,中间是抽象类,最下面就是…
集合就是一组数的集合,就像是一个容器,但是我们应该清楚的是集合中存放的都是对象的引用,而不是真正的实体.而我们常说的集合中的对象其实指的就是对象的引用. 我们可以把集合理解为一个小型数据库,用于存放数据,我们对集合的操作也就是数据的增删改查,在 Java 中有两个顶层接口 Collection 和 Map 用于定义和规范集合的相关操作.这篇文章主要说一下集合框架中的 Collection 部分. Collection 表示一组对象,这些对象可以是有序也可以是无序的,它提供了不同的子接口满足我们的…
5.集合类 集合类的由来: 对象用于封装特有数据,对象多了须要存储:假设对象的个数不确定.就使用集合容器进行存储. 集合容器由于内部的数据结构不同,有多种详细容器.不断的向上抽取,就形成了集合框架. 集合的特点: 1..用于存储对象的容器. 2.集合的长度是可变的 3.集合中不能够存储基本数据类型值 集合框架的构成及分类: 集合和数组的差别: 1.长度差别:数组的长度固定:集合长度可变 2.内容差别:数组存储的是同一种类型的元素.而集合能够存储不同类型的元素 3.元素的数据类型差别:数组能够存储…