随笔分类 - java 持有对象
1
摘要:package ch07; import java.io.*; import java.util.Iterator; import java.util.LinkedList; import java.util.ListIterator; public class Read { public static void main(String[] args)throws IOExcepti...
阅读全文
摘要:java提供了大量的持有对象的方式: 1)数组将数字和对象联系起来,它保存类型明确的对象,查询对象时,不需要对结果做类型转换,它可以时多维的,可以保存基本数据类型的数据,但是,数组一旦生成,其容量就不能改变 2)Collection保存单一的元素,而Map保存相关联的键值对.有了java泛型,你就可
阅读全文
摘要:如果现在有一个Iterable类,你想要添加一种或多种在foreach语句中使用这个类的方法,例如方向迭代,应该怎么做呢? 如果之间继承这个类,并且覆盖iterator()方法,你只能替换现有的方法,而不能实现选择 一种解决方案是所谓的adapter方法的惯用法,"适配器"部分来自于设计模式,因为你
阅读全文
摘要:foreach语法主要用于数组,但是它也可以用于Collection对象,下面是一个示例 cs是一个Colllection,所以这段代码展示了能够与foreach一起工作是所有Collection对象的特性 之所以能够工作,是因为Iterable接口,该接口包含了一个能够产生Iterator的ite
阅读全文
摘要:Collection是描述所有 序列容器的共性的根接口,它可以被认为是一个"附属接口",即因为要表示其他若干个接口的共性而出现的接口,另外,java.uitl.AbstaractCollection类提供了Collection的默认实现,使得你可以创建AbstractCollection的子类型,而
阅读全文
摘要:先进先出描述了最典型的队列.队列规则是值在给定一组队列中的元素的情况下,确定下一个弹出队列的元素的规则,先进先出声明的是下一个元素应该是等待时间最长的元素 优先级队列声明下一个弹出的元素是最需要的元素(具有最高优先级),当在PriorityQueue调用offer()方法插入一个对象时,这个对象就会
阅读全文
摘要:队列是一个典型的先进先出(FIFO)的容器,即从容器的一端放入事物,从另一端取出,并且事物放入容器的顺序与取出的顺序是相同的,队列常常被当作一种可靠的对象从程序的某个区域传输到另一个区域,队列在并发编程中特别重要 对于Queue所继承的Collection在不需要使用其它任何方法的情况下,就可以拥有
阅读全文
摘要:Comparable: 一个类实现了Camparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序,sort方法调用compareTo()方法里定义的方法进行排序,Comparable的缺点是只能按一种方式排序
阅读全文
摘要:https://www.cnblogs.com/lzq198754/p/5780165.html Map.一组成对的"键值对"对象,允许你使用键来查找值,ArrayList允许你使用数字来查找值,因此在某种意义上讲,它将数字与对象关联在了一起.映射表允许我们使用另一个对象,它也被称为"关联数组",因
阅读全文
摘要:set不保存重复的元素(至于如何判断元素相同则较为复杂,后面将会看到).Set中最常被使用的是测试归属表,你可以很容易地询问某个对象是否在某个Set中,正因如此,查找就成了Set最重要的操作,因此通常会选择一个HashSet的实现,它专门对快速查找进行了优化. set具有与Collection完全一
阅读全文
摘要:"Stack" 通常时指"后进后出"(LIFO)的容器,有时栈也被称为叠加栈,因为最后"压入"栈的元素,第一个"弹出"栈,经常用来类比栈的事物时装有弹簧的储存器中的自助托盘,最后装入托盘的总是最先拿出. LinkedList具有能够直接实现栈的所有功能的方法,因此可以直接将LinkedList当栈使
阅读全文
摘要:LinkedList也像ArrayList一样实现了基本的List接口,但是它执行某些操作(在List的中间插入和移除)时比ArrayList更高效,但在随机访问方面却要逊色一些 LinkedList还添加了可以使其用作栈,队列或双端队列的方法 这些方法有些彼此之间只是名称有差异,或者只是存在些许差
阅读全文
摘要:LIstIterator是一个更加强大的Iterator的子类型,它只能用于各种List类的访问,尽管Iterator只能向前移动,但是ListIterator可以双向移动,它还可以产生相对于迭代器在列表指向的当前位置的前一个和后一个元素的索引,并且可以使用set()方法替换它访问过的最后一个元素.
阅读全文
摘要:任何容器类,都必须有某种方式可以插入元素并将它们再次取出,毕竟持有事物是容器最基本的工作,对于List,add()插入fang,get()取出,如果从更高层的角度思考,会发现这里有个确定:要用容器,必须对容器的确切类型编程,这样如果原本是List编码的,但是后来要应用于Set,那么此时该怎么办,是重
阅读全文
摘要:list承诺可以将元素维护在特定的序列中,List接口在Collection的基础上添加了大量的方法,使得可以在List的中间插入和移动元素 有两种List 基本的ArrayList,它长于随机访问元素,但时在List的中间插入和移除元素较慢 LinkedList,它通过代价较低的在List中间进行
阅读全文
摘要:Java容器类库中的两种主要类型,它们的区别在于容器中每个"槽"保存的元素个数 Clollection容器只能在保存一个元素,此类容器包括: List,它以特定顺序保存一组元素 Set对于每个值都只保存一个对象,不能有重复元素 Queue 只允许在容器的一"端"插入对象,并从另一端移除对象(很像数据
阅读全文
摘要:在java包中的Arrays和Collection类中都有很多实用方法,可以在一个Collection中添加一组元素,Array.asList()方法接受一个数组或是一个用逗号分隔的元素列表(使用可变参数),并将其转化为一个List对象,Collections.addAll()方法接受一个Colle
阅读全文
摘要:java容器类类库的用途时"保存对象",并将其划分为两个不同的概念: 1)Collection(采集).一个独立元素的序列,这些元素都服从一条或多条规则,List必须按照插入的顺序保存元素,而Set不能有重复元素,Queue按照排队规则来确定对象产生的顺序(通常与它们被插入的顺序相同) 2)Map.
阅读全文
摘要:使用java SE5之前的容器的一个主要问题就是编译器允许你向容器插入不正确的类型,例如: 使用Java泛型创建类会非常复杂,但是,应用预定义的泛型通常会很简单,例如Apple的ArrayList可以声明为ArrayList<Apple>,而不仅仅时ArrayList,其中尖括号括起来的参数是类型参
阅读全文
摘要:如果一个程序中只包含固定数量的且其生命周期都是已知的对象,那么这是一个简单的程序 通常程序总是根据运行时才知道的某些条件去创建对象,为解决这个普遍的编程问题,需要在任意时刻,任意位置创建任意数量的对象 java有多种方式保存对象,如数组,数组比较时候保存基本数据类型,但数组的尺寸固定,显得过于受限
阅读全文
1