﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-Java Coder-文章分类-java.util 包分析</title><link>http://www.blogjava.net/fred-fudan/category/33090.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 27 Jul 2008 22:09:36 GMT</lastBuildDate><pubDate>Sun, 27 Jul 2008 22:09:36 GMT</pubDate><ttl>60</ttl><item><title>Map 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/217875.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sun, 27 Jul 2008 13:11:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/217875.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/217875.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/217875.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/217875.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/217875.html</trackback:ping><description><![CDATA[java.util.Map 接口定义了key-value对形式的集合类型，它提供了三种访问视图：<br />
<ul>
    <li>key set：所有key的集合。由于key是不可重复的，所以返回一个set</li>
    <li>value collection：所有value的集合，value可以重复</li>
    <li>entry set：所有key-value对的集合，也不可能重复</li>
</ul>
对这三个视图的修改都会影响到原来的Map集合。<br />
必须注意的是，Map中的key要选择不可变对象，比如String，否则Map的行为不可预测。<br />
<br />
Map接口中还定义了一个内部接口Map.Entry，它包含了一个key-value对象，提供了getKey()和getValue()等方法。和entrySet()方法一起使用，可以方便的遍历整个Map集合。<br />
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/217875.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-27 21:11 <a href="http://www.blogjava.net/fred-fudan/articles/217875.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TreeSet 类分析</title><link>http://www.blogjava.net/fred-fudan/articles/217686.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sat, 26 Jul 2008 09:11:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/217686.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/217686.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/217686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/217686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/217686.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: TreeSet 类实现了 NavigableSet 接口，是一种有序的Set集合：    必须提供元素的排序方法：自然排序，或者在构造方法中提供Comparator对象    TreeSet 依赖 TreeMap 的实现，所有的方法都依托TreeMap    排序方法必须和equals(obj)方法相一致，以符合Set的定义Code highlighting pro...&nbsp;&nbsp;<a href='http://www.blogjava.net/fred-fudan/articles/217686.html'>阅读全文</a><img src ="http://www.blogjava.net/fred-fudan/aggbug/217686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-26 17:11 <a href="http://www.blogjava.net/fred-fudan/articles/217686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NavigableSet 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/216466.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Mon, 21 Jul 2008 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216466.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216466.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216466.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216466.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216466.html</trackback:ping><description><![CDATA[java.util.Navigable 接口继承自 SortedSet 接口，在排序Set的基础上支持更多的查找功能。<br />
NavigableSet 接口的新特性：<br />
<ul>
    <li>higher()、lower()方法可以返回大于、小于指定元素的最近元素</li>
    <li>descendingSet()、descendingIterator()方法可以按照排序结果的逆向遍历元素</li>
    <li>subSet()、headSet()、tailSet()这些方法中可以传入参数，指定是否包括头（尾）元素<br />
    </li>
</ul>
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216466.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-21 22:34 <a href="http://www.blogjava.net/fred-fudan/articles/216466.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AbstractSet 抽象类分析</title><link>http://www.blogjava.net/fred-fudan/articles/216459.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Mon, 21 Jul 2008 14:20:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216459.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216459.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216459.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216459.html</trackback:ping><description><![CDATA[java.util.AbstractSet抽象类继承自 AbstractCollection 抽象类，所有Set的实现类都直接或者间接继承AbstractSet父类。<br />
AbstractSet类包括equals(),hashCode(),removeAll(c)方法，这些方法都被实现了，子类无需再重写。<br />
AbstractSet类提供了实现Set集合的基本框架，方便HashSet、TreeSet这些子类的实现。<br />
<br />
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #008080;">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #0000ff;">package</span><span style="color: #000000;">&nbsp;java.util;<br />
</span><span style="color: #008080;">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">abstract</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">class</span><span style="color: #000000;">&nbsp;AbstractSet</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">E</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">&nbsp;AbstractCollection</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">E</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">implements</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">E</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Sole&nbsp;constructor.&nbsp;(For&nbsp;invocation&nbsp;by&nbsp;subclass&nbsp;constructors,&nbsp;typically<br />
</span><span style="color: #008080;">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;implicit.)<br />
</span><span style="color: #008080;">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">protected</span><span style="color: #000000;">&nbsp;AbstractSet()&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;11</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Comparison&nbsp;and&nbsp;hashing</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;13</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;15</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Compares&nbsp;the&nbsp;specified&nbsp;object&nbsp;with&nbsp;this&nbsp;set&nbsp;for&nbsp;equality.&nbsp;Returns<br />
</span><span style="color: #008080;">&nbsp;16</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;given&nbsp;object&nbsp;is&nbsp;also&nbsp;a&nbsp;set,&nbsp;the&nbsp;two&nbsp;sets&nbsp;have&nbsp;the<br />
</span><span style="color: #008080;">&nbsp;17</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;same&nbsp;size,&nbsp;and&nbsp;every&nbsp;member&nbsp;of&nbsp;the&nbsp;given&nbsp;set&nbsp;is&nbsp;contained&nbsp;in&nbsp;this&nbsp;set.<br />
</span><span style="color: #008080;">&nbsp;18</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;ensures&nbsp;that&nbsp;the&nbsp;&lt;tt&gt;equals&lt;/tt&gt;&nbsp;method&nbsp;works&nbsp;properly&nbsp;across<br />
</span><span style="color: #008080;">&nbsp;19</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;different&nbsp;implementations&nbsp;of&nbsp;the&nbsp;&lt;tt&gt;Set&lt;/tt&gt;&nbsp;interface.<br />
</span><span style="color: #008080;">&nbsp;20</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;p&gt;<br />
</span><span style="color: #008080;">&nbsp;21</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;22</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;implementation&nbsp;first&nbsp;checks&nbsp;if&nbsp;the&nbsp;specified&nbsp;object&nbsp;is&nbsp;this&nbsp;set;&nbsp;if<br />
</span><span style="color: #008080;">&nbsp;23</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;so&nbsp;it&nbsp;returns&nbsp;&lt;tt&gt;true&lt;/tt&gt;.&nbsp;Then,&nbsp;it&nbsp;checks&nbsp;if&nbsp;the&nbsp;specified&nbsp;object&nbsp;is&nbsp;a<br />
</span><span style="color: #008080;">&nbsp;24</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;set&nbsp;whose&nbsp;size&nbsp;is&nbsp;identical&nbsp;to&nbsp;the&nbsp;size&nbsp;of&nbsp;this&nbsp;set;&nbsp;if&nbsp;not,&nbsp;it&nbsp;returns<br />
</span><span style="color: #008080;">&nbsp;25</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;false.&nbsp;If&nbsp;so,&nbsp;it&nbsp;returns&nbsp;&lt;tt&gt;containsAll((Collection)&nbsp;o)&lt;/tt&gt;.<br />
</span><span style="color: #008080;">&nbsp;26</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;27</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;o<br />
</span><span style="color: #008080;">&nbsp;28</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;object&nbsp;to&nbsp;be&nbsp;compared&nbsp;for&nbsp;equality&nbsp;with&nbsp;this&nbsp;set<br />
</span><span style="color: #008080;">&nbsp;29</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;">&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;specified&nbsp;object&nbsp;is&nbsp;equal&nbsp;to&nbsp;this&nbsp;set<br />
</span><span style="color: #008080;">&nbsp;30</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;31</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;equals(Object&nbsp;o)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;是否指向同一个对象？</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(o&nbsp;</span><span style="color: #000000;">==</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">this</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;是否都是Set类？</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(</span><span style="color: #000000;">!</span><span style="color: #000000;">(o&nbsp;</span><span style="color: #0000ff;">instanceof</span><span style="color: #000000;">&nbsp;Set))<br />
</span><span style="color: #008080;">&nbsp;38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080;">&nbsp;40</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Collection&nbsp;c&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;(Collection)&nbsp;o;<br />
</span><span style="color: #008080;">&nbsp;41</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;先比较大小</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;42</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(c.size()&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;size())<br />
</span><span style="color: #008080;">&nbsp;43</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;44</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">try</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;45</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;再比较所有的元素</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;46</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;containsAll(c);<br />
</span><span style="color: #008080;">&nbsp;47</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;处理containsAll(c)抛出的异常</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;48</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(ClassCastException&nbsp;unused)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;49</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;50</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">&nbsp;(NullPointerException&nbsp;unused)&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;51</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;52</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;53</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;54</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;55</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;56</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;hash&nbsp;code&nbsp;value&nbsp;for&nbsp;this&nbsp;set.&nbsp;The&nbsp;hash&nbsp;code&nbsp;of&nbsp;a&nbsp;set&nbsp;is<br />
</span><span style="color: #008080;">&nbsp;57</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;defined&nbsp;to&nbsp;be&nbsp;the&nbsp;sum&nbsp;of&nbsp;the&nbsp;hash&nbsp;codes&nbsp;of&nbsp;the&nbsp;elements&nbsp;in&nbsp;the&nbsp;set,&nbsp;where<br />
</span><span style="color: #008080;">&nbsp;58</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;the&nbsp;hash&nbsp;code&nbsp;of&nbsp;a&nbsp;&lt;tt&gt;null&lt;/tt&gt;&nbsp;element&nbsp;is&nbsp;defined&nbsp;to&nbsp;be&nbsp;zero.&nbsp;This<br />
</span><span style="color: #008080;">&nbsp;59</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;ensures&nbsp;that&nbsp;&lt;tt&gt;s1.equals(s2)&lt;/tt&gt;&nbsp;implies&nbsp;that<br />
</span><span style="color: #008080;">&nbsp;60</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;s1.hashCode()==s2.hashCode()&lt;/tt&gt;&nbsp;for&nbsp;any&nbsp;two&nbsp;sets&nbsp;&lt;tt&gt;s1&lt;/tt&gt;&nbsp;and<br />
</span><span style="color: #008080;">&nbsp;61</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;s2&lt;/tt&gt;,&nbsp;as&nbsp;required&nbsp;by&nbsp;the&nbsp;general&nbsp;contract&nbsp;of<br />
</span><span style="color: #008080;">&nbsp;62</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;{</span><span style="color: #808080;">@link</span><span style="color: #008000;">&nbsp;Object#hashCode}.<br />
</span><span style="color: #008080;">&nbsp;63</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;64</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;p&gt;<br />
</span><span style="color: #008080;">&nbsp;65</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;implementation&nbsp;iterates&nbsp;over&nbsp;the&nbsp;set,&nbsp;calling&nbsp;the&nbsp;&lt;tt&gt;hashCode&lt;/tt&gt;<br />
</span><span style="color: #008080;">&nbsp;66</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;method&nbsp;on&nbsp;each&nbsp;element&nbsp;in&nbsp;the&nbsp;set,&nbsp;and&nbsp;adding&nbsp;up&nbsp;the&nbsp;results.<br />
</span><span style="color: #008080;">&nbsp;67</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;68</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;">&nbsp;the&nbsp;hash&nbsp;code&nbsp;value&nbsp;for&nbsp;this&nbsp;set<br />
</span><span style="color: #008080;">&nbsp;69</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@see</span><span style="color: #008000;">&nbsp;Object#equals(Object)<br />
</span><span style="color: #008080;">&nbsp;70</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@see</span><span style="color: #008000;">&nbsp;Set#equals(Object)<br />
</span><span style="color: #008080;">&nbsp;71</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;72</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;hashCode()&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;73</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;h&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;74</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;使用迭代器遍历所有的元素</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;75</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Iterator</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">E</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;iterator();<br />
</span><span style="color: #008080;">&nbsp;76</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">while</span><span style="color: #000000;">&nbsp;(i.hasNext())&nbsp;{<br />
</span><span style="color: #008080;">&nbsp;77</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;obj&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;i.next();<br />
</span><span style="color: #008080;">&nbsp;78</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(obj&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">)<br />
</span><span style="color: #008080;">&nbsp;79</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;加上每个元素的hashCode</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;80</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;h&nbsp;</span><span style="color: #000000;">+=</span><span style="color: #000000;">&nbsp;obj.hashCode();<br />
</span><span style="color: #008080;">&nbsp;81</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;82</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;h;<br />
</span><span style="color: #008080;">&nbsp;83</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">&nbsp;84</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;85</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;86</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Removes&nbsp;from&nbsp;this&nbsp;set&nbsp;all&nbsp;of&nbsp;its&nbsp;elements&nbsp;that&nbsp;are&nbsp;contained&nbsp;in&nbsp;the<br />
</span><span style="color: #008080;">&nbsp;87</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;specified&nbsp;collection&nbsp;(optional&nbsp;operation).&nbsp;If&nbsp;the&nbsp;specified&nbsp;collection&nbsp;is<br />
</span><span style="color: #008080;">&nbsp;88</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;also&nbsp;a&nbsp;set,&nbsp;this&nbsp;operation&nbsp;effectively&nbsp;modifies&nbsp;this&nbsp;set&nbsp;so&nbsp;that&nbsp;its<br />
</span><span style="color: #008080;">&nbsp;89</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;value&nbsp;is&nbsp;the&nbsp;&lt;i&gt;asymmetric&nbsp;set&nbsp;difference&lt;/i&gt;&nbsp;of&nbsp;the&nbsp;two&nbsp;sets.<br />
</span><span style="color: #008080;">&nbsp;90</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">&nbsp;91</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;p&gt;<br />
</span><span style="color: #008080;">&nbsp;92</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;implementation&nbsp;determines&nbsp;which&nbsp;is&nbsp;the&nbsp;smaller&nbsp;of&nbsp;this&nbsp;set&nbsp;and&nbsp;the<br />
</span><span style="color: #008080;">&nbsp;93</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;specified&nbsp;collection,&nbsp;by&nbsp;invoking&nbsp;the&nbsp;&lt;tt&gt;size&lt;/tt&gt;&nbsp;method&nbsp;on&nbsp;each.&nbsp;If<br />
</span><span style="color: #008080;">&nbsp;94</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;this&nbsp;set&nbsp;has&nbsp;fewer&nbsp;elements,&nbsp;then&nbsp;the&nbsp;implementation&nbsp;iterates&nbsp;over&nbsp;this<br />
</span><span style="color: #008080;">&nbsp;95</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;set,&nbsp;checking&nbsp;each&nbsp;element&nbsp;returned&nbsp;by&nbsp;the&nbsp;iterator&nbsp;in&nbsp;turn&nbsp;to&nbsp;see&nbsp;if&nbsp;it<br />
</span><span style="color: #008080;">&nbsp;96</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;is&nbsp;contained&nbsp;in&nbsp;the&nbsp;specified&nbsp;collection.&nbsp;If&nbsp;it&nbsp;is&nbsp;so&nbsp;contained,&nbsp;it&nbsp;is<br />
</span><span style="color: #008080;">&nbsp;97</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;removed&nbsp;from&nbsp;this&nbsp;set&nbsp;with&nbsp;the&nbsp;iterator's&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;method.&nbsp;If&nbsp;the<br />
</span><span style="color: #008080;">&nbsp;98</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;specified&nbsp;collection&nbsp;has&nbsp;fewer&nbsp;elements,&nbsp;then&nbsp;the&nbsp;implementation&nbsp;iterates<br />
</span><span style="color: #008080;">&nbsp;99</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;over&nbsp;the&nbsp;specified&nbsp;collection,&nbsp;removing&nbsp;from&nbsp;this&nbsp;set&nbsp;each&nbsp;element<br />
</span><span style="color: #008080;">100</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;returned&nbsp;by&nbsp;the&nbsp;iterator,&nbsp;using&nbsp;this&nbsp;set's&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;method.<br />
</span><span style="color: #008080;">101</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">102</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;p&gt;<br />
</span><span style="color: #008080;">103</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Note&nbsp;that&nbsp;this&nbsp;implementation&nbsp;will&nbsp;throw&nbsp;an<br />
</span><span style="color: #008080;">104</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;UnsupportedOperationException&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;iterator&nbsp;returned&nbsp;by&nbsp;the<br />
</span><span style="color: #008080;">105</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;iterator&lt;/tt&gt;&nbsp;method&nbsp;does&nbsp;not&nbsp;implement&nbsp;the&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;method.<br />
</span><span style="color: #008080;">106</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: #008080;">107</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@param</span><span style="color: #008000;">&nbsp;c<br />
</span><span style="color: #008080;">108</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;collection&nbsp;containing&nbsp;elements&nbsp;to&nbsp;be&nbsp;removed&nbsp;from&nbsp;this&nbsp;set<br />
</span><span style="color: #008080;">109</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@return</span><span style="color: #008000;">&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;this&nbsp;set&nbsp;changed&nbsp;as&nbsp;a&nbsp;result&nbsp;of&nbsp;the&nbsp;call<br />
</span><span style="color: #008080;">110</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;UnsupportedOperationException<br />
</span><span style="color: #008080;">111</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;removeAll&lt;/tt&gt;&nbsp;operation&nbsp;is&nbsp;not&nbsp;supported&nbsp;by&nbsp;this<br />
</span><span style="color: #008080;">112</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set<br />
</span><span style="color: #008080;">113</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;ClassCastException<br />
</span><span style="color: #008080;">114</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;the&nbsp;class&nbsp;of&nbsp;an&nbsp;element&nbsp;of&nbsp;this&nbsp;set&nbsp;is&nbsp;incompatible&nbsp;with<br />
</span><span style="color: #008080;">115</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;specified&nbsp;collection&nbsp;(optional)<br />
</span><span style="color: #008080;">116</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@throws</span><span style="color: #008000;">&nbsp;NullPointerException<br />
</span><span style="color: #008080;">117</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;this&nbsp;set&nbsp;contains&nbsp;a&nbsp;null&nbsp;element&nbsp;and&nbsp;the&nbsp;specified<br />
</span><span style="color: #008080;">118</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;collection&nbsp;does&nbsp;not&nbsp;permit&nbsp;null&nbsp;elements&nbsp;(optional),&nbsp;or&nbsp;if<br />
</span><span style="color: #008080;">119</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;specified&nbsp;collection&nbsp;is&nbsp;null<br />
</span><span style="color: #008080;">120</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@see</span><span style="color: #008000;">&nbsp;#remove(Object)<br />
</span><span style="color: #008080;">121</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: #808080;">@see</span><span style="color: #008000;">&nbsp;#contains(Object)<br />
</span><span style="color: #008080;">122</span>&nbsp;<span style="color: #008000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">123</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">public</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;removeAll(Collection</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;c)&nbsp;{<br />
</span><span style="color: #008080;">124</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">boolean</span><span style="color: #000000;">&nbsp;modified&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">125</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">126</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;对元素少的集合使用迭代器</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">127</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(size()&nbsp;</span><span style="color: #000000;">&gt;</span><span style="color: #000000;">&nbsp;c.size())&nbsp;{<br />
</span><span style="color: #008080;">128</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(Iterator</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;c.iterator();&nbsp;i.hasNext();)<br />
</span><span style="color: #008080;">129</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;Set集合删除元素，记录操作是否成功</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">130</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modified&nbsp;</span><span style="color: #000000;">|=</span><span style="color: #000000;">&nbsp;remove(i.next());<br />
</span><span style="color: #008080;">131</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</span><span style="color: #0000ff;">else</span><span style="color: #000000;">&nbsp;{<br />
</span><span style="color: #008080;">132</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">for</span><span style="color: #000000;">&nbsp;(Iterator</span><span style="color: #000000;">&lt;?&gt;</span><span style="color: #000000;">&nbsp;i&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;iterator();&nbsp;i.hasNext();)&nbsp;{<br />
</span><span style="color: #008080;">133</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(c.contains(i.next()))&nbsp;{<br />
</span><span style="color: #008080;">134</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">&nbsp;迭代器删除元素，记录成功</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">135</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i.remove();<br />
</span><span style="color: #008080;">136</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;modified&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">137</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">138</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">139</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">140</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff;">return</span><span style="color: #000000;">&nbsp;modified;<br />
</span><span style="color: #008080;">141</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080;">142</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">143</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">144</span>&nbsp;</div>
<br />
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-21 22:20 <a href="http://www.blogjava.net/fred-fudan/articles/216459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SortedSet 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/216238.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sun, 20 Jul 2008 13:24:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216238.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216238.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216238.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216238.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216238.html</trackback:ping><description><![CDATA[java.util.SortedSet接口继承Set接口，分化出一类有序的Set集合。<br />
SortedSet接口引入的新特性：<br />
<ul>
    <li>关联Comparator接口，支持对元素的排序</li>
    <li>扩展了对构造方法的约定。因为接口不能定义构造方法，所以只能在文档中对接口实现类作出约定</li>
    <li>提供有序Set衍生出的方法：subSet(from,end),first(),last()</li>
</ul>
必须注意的是，在SortedSet中使用的排序方法，Comparable或者是Comparator，必须和equals方法的含义一致，否则会出现&#8220;异常的&#8221;Set。因为SortedSet在插入元素的时候使用compare方法确定元素是否相同，如果出现了compare方法返回不相等（元素被插入），但是equals方法返回相等的情况，所实现的Set类对象就会不符合Set的原始定义。<br />
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216238.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-20 21:24 <a href="http://www.blogjava.net/fred-fudan/articles/216238.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Set 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/216192.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sun, 20 Jul 2008 09:16:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216192.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216192.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216192.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216192.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216192.html</trackback:ping><description><![CDATA[java.util.Set接口继承了Collection接口，定义了没有重复元素的一类集合，也就是数学上的集合概念。<br />
Set接口引入的新特性：<br />
<ul>
    <li>不允许添加重复元素，所以null元素最多有一个</li>
    <li>不允许Set自包含</li>
    <li>add(),equals(),hashCode()方法约定被修改，以支持元素唯一性<br />
    </li>
</ul>
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216192.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-20 17:16 <a href="http://www.blogjava.net/fred-fudan/articles/216192.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>List 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/216191.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sun, 20 Jul 2008 08:59:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216191.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216191.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216191.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216191.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216191.html</trackback:ping><description><![CDATA[java.util.List接口继承了Collection接口的，表达一种有序的集合。<br />
List接口加入的新特性包括：<br />
<ul>
    <li>通过索引访问和修改元素，索引值从0开始</li>
    <li>允许重复元素，包括null</li>
    <li>提供ListIterator接口，支持双向遍历，元素的添加和修改<br />
    </li>
</ul>
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216191.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-20 16:59 <a href="http://www.blogjava.net/fred-fudan/articles/216191.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Collection 接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/216178.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sun, 20 Jul 2008 07:21:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216178.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216178.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216178.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216178.html</trackback:ping><description><![CDATA[Collection 接口是List和Set集合类的根，定义了List和Set诸多实现类的通用方法。<br />
Collection 接口的继承关系图如下：<br />
<br />
java.util.<a href="file:///D:/random/Java/jdk-6-doc/docs/api/java/util/Collection.html" title="interface in java.util"><strong>Collection</strong></a><br />
<ul>
    <li>java.util.List</li>
    <li>java.util.Queue</li>
    <ul>
        <li>java.util.Deque</li>
    </ul>
    <li>java.util.Set</li>
    <ul>
        <li>java.util.SortedSet</li>
        <ul>
            <li>java.util.NavigableSet</li>
        </ul>
    </ul>
</ul>
Collection 接口的方法定义参见JDK文档。<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/216178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-20 15:21 <a href="http://www.blogjava.net/fred-fudan/articles/216178.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HashSet 类分析</title><link>http://www.blogjava.net/fred-fudan/articles/216088.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sat, 19 Jul 2008 13:35:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/216088.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/216088.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/216088.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/216088.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/216088.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;1&nbsp;package&nbsp;java.util;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;3&nbsp;public&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/fred-fudan/articles/216088.html'>阅读全文</a><img src ="http://www.blogjava.net/fred-fudan/aggbug/216088.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-19 21:35 <a href="http://www.blogjava.net/fred-fudan/articles/216088.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Iterator和ListIterator接口分析</title><link>http://www.blogjava.net/fred-fudan/articles/215988.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Sat, 19 Jul 2008 03:53:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/215988.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/215988.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/215988.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/215988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/215988.html</trackback:ping><description><![CDATA[Iterator接口定义了遍历集合类对象的通用方法，不同的集合类有不同的Iterator实现类，实现接口中的抽象方法。有了Iterator接口，可以用统一的方式对各种集合元素进行遍历和迭代，方便程序的修改。<br />
Iterator接口中包括的方法有：<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;1</span>&nbsp;<span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">interface</span><span style="color: rgb(0, 0, 0);">&nbsp;Iterator</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">E</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;2</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;3</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;iteration&nbsp;has&nbsp;more&nbsp;elements.&nbsp;(In&nbsp;other<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;4</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;words,&nbsp;returns&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;would&nbsp;return&nbsp;an&nbsp;element<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;5</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;rather&nbsp;than&nbsp;throwing&nbsp;an&nbsp;exception.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;6</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;7</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;iterator&nbsp;has&nbsp;more&nbsp;elements.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;8</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;9</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;hasNext();<br />
</span><span style="color: rgb(0, 128, 128);">10</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">11</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">12</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;next&nbsp;element&nbsp;in&nbsp;the&nbsp;iteration.<br />
</span><span style="color: rgb(0, 128, 128);">13</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">14</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;the&nbsp;next&nbsp;element&nbsp;in&nbsp;the&nbsp;iteration.<br />
</span><span style="color: rgb(0, 128, 128);">15</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;NoSuchElementException&nbsp;iteration&nbsp;has&nbsp;no&nbsp;more&nbsp;elements.<br />
</span><span style="color: rgb(0, 128, 128);">16</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">17</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;next();<br />
</span><span style="color: rgb(0, 128, 128);">18</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">19</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">20</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">21</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Removes&nbsp;from&nbsp;the&nbsp;underlying&nbsp;collection&nbsp;the&nbsp;last&nbsp;element&nbsp;returned&nbsp;by&nbsp;the<br />
</span><span style="color: rgb(0, 128, 128);">22</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;iterator&nbsp;(optional&nbsp;operation).&nbsp;&nbsp;This&nbsp;method&nbsp;can&nbsp;be&nbsp;called&nbsp;only&nbsp;once&nbsp;per<br />
</span><span style="color: rgb(0, 128, 128);">23</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;.&nbsp;&nbsp;The&nbsp;behavior&nbsp;of&nbsp;an&nbsp;iterator&nbsp;is&nbsp;unspecified&nbsp;if<br />
</span><span style="color: rgb(0, 128, 128);">24</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;the&nbsp;underlying&nbsp;collection&nbsp;is&nbsp;modified&nbsp;while&nbsp;the&nbsp;iteration&nbsp;is&nbsp;in<br />
</span><span style="color: rgb(0, 128, 128);">25</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;progress&nbsp;in&nbsp;any&nbsp;way&nbsp;other&nbsp;than&nbsp;by&nbsp;calling&nbsp;this&nbsp;method.<br />
</span><span style="color: rgb(0, 128, 128);">26</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">27</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;UnsupportedOperationException&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;remove&lt;/tt&gt;<br />
</span><span style="color: rgb(0, 128, 128);">28</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operation&nbsp;is&nbsp;not&nbsp;supported&nbsp;by&nbsp;this&nbsp;Iterator.<br />
</span><span style="color: rgb(0, 128, 128);">29</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: rgb(0, 128, 128);">30</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;IllegalStateException&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;method&nbsp;has&nbsp;not<br />
</span><span style="color: rgb(0, 128, 128);">31</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yet&nbsp;been&nbsp;called,&nbsp;or&nbsp;the&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;method&nbsp;has&nbsp;already<br />
</span><span style="color: rgb(0, 128, 128);">32</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;been&nbsp;called&nbsp;after&nbsp;the&nbsp;last&nbsp;call&nbsp;to&nbsp;the&nbsp;&lt;tt&gt;next&lt;/tt&gt;<br />
</span><span style="color: rgb(0, 128, 128);">33</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method.<br />
</span><span style="color: rgb(0, 128, 128);">34</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">35</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;remove();<br />
</span><span style="color: rgb(0, 128, 128);">36</span>&nbsp;<span style="color: rgb(0, 0, 0);">}</span></div>
<br />
ListIterator接口扩展了Iterator接口，定义了更多的访问方法。不仅可以向前遍历，还可以向后遍历，添加、修改元素。ListIterator接口中包括的方法有：<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; background-color: rgb(238, 238, 238); font-size: 13px; width: 98%;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;1</span>&nbsp;<span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">interface</span><span style="color: rgb(0, 0, 0);">&nbsp;ListIterator</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">E</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">extends</span><span style="color: rgb(0, 0, 0);">&nbsp;Iterator</span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);">E</span><span style="color: rgb(0, 0, 0);">&gt;</span><span style="color: rgb(0, 0, 0);">&nbsp;{<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;2</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;Query&nbsp;Operations</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;3</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;4</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;5</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;this&nbsp;list&nbsp;iterator&nbsp;has&nbsp;more&nbsp;elements&nbsp;when<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;6</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;traversing&nbsp;the&nbsp;list&nbsp;in&nbsp;the&nbsp;forward&nbsp;direction.&nbsp;(In&nbsp;other&nbsp;words,&nbsp;returns<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;7</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;would&nbsp;return&nbsp;an&nbsp;element&nbsp;rather&nbsp;than<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;8</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;throwing&nbsp;an&nbsp;exception.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;&nbsp;9</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;10</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;list&nbsp;iterator&nbsp;has&nbsp;more&nbsp;elements&nbsp;when<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;11</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;traversing&nbsp;the&nbsp;list&nbsp;in&nbsp;the&nbsp;forward&nbsp;direction.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;12</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;13</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;hasNext();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;14</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;15</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;16</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;next&nbsp;element&nbsp;in&nbsp;the&nbsp;list.&nbsp;&nbsp;This&nbsp;method&nbsp;may&nbsp;be&nbsp;called<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;17</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;repeatedly&nbsp;to&nbsp;iterate&nbsp;through&nbsp;the&nbsp;list,&nbsp;or&nbsp;intermixed&nbsp;with&nbsp;calls&nbsp;to<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;18</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;to&nbsp;go&nbsp;back&nbsp;and&nbsp;forth.&nbsp;&nbsp;(Note&nbsp;that&nbsp;alternating&nbsp;calls<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;19</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;and&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;will&nbsp;return&nbsp;the&nbsp;same&nbsp;element<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;20</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;repeatedly.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;21</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;22</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;the&nbsp;next&nbsp;element&nbsp;in&nbsp;the&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;23</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;NoSuchElementException&nbsp;if&nbsp;the&nbsp;iteration&nbsp;has&nbsp;no&nbsp;next&nbsp;element.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;24</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;25</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;next();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;26</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;27</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;28</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;this&nbsp;list&nbsp;iterator&nbsp;has&nbsp;more&nbsp;elements&nbsp;when<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;29</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;traversing&nbsp;the&nbsp;list&nbsp;in&nbsp;the&nbsp;reverse&nbsp;direction.&nbsp;&nbsp;(In&nbsp;other&nbsp;words,&nbsp;returns<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;30</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;would&nbsp;return&nbsp;an&nbsp;element&nbsp;rather&nbsp;than<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;31</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;throwing&nbsp;an&nbsp;exception.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;32</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;33</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;&lt;tt&gt;true&lt;/tt&gt;&nbsp;if&nbsp;the&nbsp;list&nbsp;iterator&nbsp;has&nbsp;more&nbsp;elements&nbsp;when<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;34</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;traversing&nbsp;the&nbsp;list&nbsp;in&nbsp;the&nbsp;reverse&nbsp;direction.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;35</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;36</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">boolean</span><span style="color: rgb(0, 0, 0);">&nbsp;hasPrevious();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;37</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;38</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;39</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;previous&nbsp;element&nbsp;in&nbsp;the&nbsp;list.&nbsp;&nbsp;This&nbsp;method&nbsp;may&nbsp;be&nbsp;called<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;40</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;repeatedly&nbsp;to&nbsp;iterate&nbsp;through&nbsp;the&nbsp;list&nbsp;backwards,&nbsp;or&nbsp;intermixed&nbsp;with<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;41</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;calls&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;to&nbsp;go&nbsp;back&nbsp;and&nbsp;forth.&nbsp;&nbsp;(Note&nbsp;that&nbsp;alternating<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;42</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;calls&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;and&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;will&nbsp;return&nbsp;the&nbsp;same<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;43</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;element&nbsp;repeatedly.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;44</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;45</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;the&nbsp;previous&nbsp;element&nbsp;in&nbsp;the&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;46</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;47</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;NoSuchElementException&nbsp;if&nbsp;the&nbsp;iteration&nbsp;has&nbsp;no&nbsp;previous<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;48</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;49</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;50</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;E&nbsp;previous();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;51</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;52</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;53</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;element&nbsp;that&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;a&nbsp;subsequent<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;54</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;.&nbsp;(Returns&nbsp;list&nbsp;size&nbsp;if&nbsp;the&nbsp;list&nbsp;iterator&nbsp;is&nbsp;at&nbsp;the<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;55</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;end&nbsp;of&nbsp;the&nbsp;list.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;56</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;57</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;element&nbsp;that&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;a&nbsp;subsequent<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;58</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;,&nbsp;or&nbsp;list&nbsp;size&nbsp;if&nbsp;list&nbsp;iterator&nbsp;is&nbsp;at&nbsp;end<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;59</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;of&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;60</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;61</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;nextIndex();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;62</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;63</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;64</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Returns&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;element&nbsp;that&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;a&nbsp;subsequent<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;65</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.&nbsp;(Returns&nbsp;-1&nbsp;if&nbsp;the&nbsp;list&nbsp;iterator&nbsp;is&nbsp;at&nbsp;the<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;66</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;beginning&nbsp;of&nbsp;the&nbsp;list.)<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;67</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;68</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@return</span><span style="color: rgb(0, 128, 0);">&nbsp;the&nbsp;index&nbsp;of&nbsp;the&nbsp;element&nbsp;that&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;a&nbsp;subsequent<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;69</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;previous&lt;/tt&gt;,&nbsp;or&nbsp;-1&nbsp;if&nbsp;list&nbsp;iterator&nbsp;is&nbsp;at<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;70</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;beginning&nbsp;of&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;71</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;72</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);">&nbsp;previousIndex();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;73</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;74</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;75</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;Modification&nbsp;Operations</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;76</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;77</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;78</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Removes&nbsp;from&nbsp;the&nbsp;list&nbsp;the&nbsp;last&nbsp;element&nbsp;that&nbsp;was&nbsp;returned&nbsp;by<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;79</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;(optional&nbsp;operation).&nbsp;&nbsp;This&nbsp;call&nbsp;can<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;80</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;only&nbsp;be&nbsp;made&nbsp;once&nbsp;per&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.&nbsp;&nbsp;It<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;81</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;can&nbsp;be&nbsp;made&nbsp;only&nbsp;if&nbsp;&lt;tt&gt;ListIterator.add&lt;/tt&gt;&nbsp;has&nbsp;not&nbsp;been&nbsp;called&nbsp;after<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;82</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;the&nbsp;last&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;83</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;84</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;UnsupportedOperationException&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;remove&lt;/tt&gt;<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;85</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;operation&nbsp;is&nbsp;not&nbsp;supported&nbsp;by&nbsp;this&nbsp;list&nbsp;iterator.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;86</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;IllegalStateException&nbsp;neither&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;nor<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;87</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;have&nbsp;been&nbsp;called,&nbsp;or&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;or<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;88</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;add&lt;/tt&gt;&nbsp;have&nbsp;been&nbsp;called&nbsp;after&nbsp;the&nbsp;last&nbsp;call&nbsp;to<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;89</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;90</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;91</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;remove();<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;92</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;93</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;94</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Replaces&nbsp;the&nbsp;last&nbsp;element&nbsp;returned&nbsp;by&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;95</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;with&nbsp;the&nbsp;specified&nbsp;element&nbsp;(optional&nbsp;operation).<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;96</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;This&nbsp;call&nbsp;can&nbsp;be&nbsp;made&nbsp;only&nbsp;if&nbsp;neither&nbsp;&lt;tt&gt;ListIterator.remove&lt;/tt&gt;&nbsp;nor<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;97</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;ListIterator.add&lt;/tt&gt;&nbsp;have&nbsp;been&nbsp;called&nbsp;after&nbsp;the&nbsp;last&nbsp;call&nbsp;to<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;98</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.<br />
</span><span style="color: rgb(0, 128, 128);">&nbsp;99</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">100</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@param</span><span style="color: rgb(0, 128, 0);">&nbsp;e&nbsp;the&nbsp;element&nbsp;with&nbsp;which&nbsp;to&nbsp;replace&nbsp;the&nbsp;last&nbsp;element&nbsp;returned&nbsp;by<br />
</span><span style="color: rgb(0, 128, 128);">101</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.<br />
</span><span style="color: rgb(0, 128, 128);">102</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;UnsupportedOperationException&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;set&lt;/tt&gt;&nbsp;operation<br />
</span><span style="color: rgb(0, 128, 128);">103</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is&nbsp;not&nbsp;supported&nbsp;by&nbsp;this&nbsp;list&nbsp;iterator.<br />
</span><span style="color: rgb(0, 128, 128);">104</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;ClassCastException&nbsp;if&nbsp;the&nbsp;class&nbsp;of&nbsp;the&nbsp;specified&nbsp;element<br />
</span><span style="color: rgb(0, 128, 128);">105</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prevents&nbsp;it&nbsp;from&nbsp;being&nbsp;added&nbsp;to&nbsp;this&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">106</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;IllegalArgumentException&nbsp;if&nbsp;some&nbsp;aspect&nbsp;of&nbsp;the&nbsp;specified<br />
</span><span style="color: rgb(0, 128, 128);">107</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;element&nbsp;prevents&nbsp;it&nbsp;from&nbsp;being&nbsp;added&nbsp;to&nbsp;this&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">108</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;IllegalStateException&nbsp;if&nbsp;neither&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;nor<br />
</span><span style="color: rgb(0, 128, 128);">109</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;have&nbsp;been&nbsp;called,&nbsp;or&nbsp;&lt;tt&gt;remove&lt;/tt&gt;&nbsp;or<br />
</span><span style="color: rgb(0, 128, 128);">110</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;add&lt;/tt&gt;&nbsp;have&nbsp;been&nbsp;called&nbsp;after&nbsp;the&nbsp;last&nbsp;call&nbsp;to<br />
</span><span style="color: rgb(0, 128, 128);">111</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;or&nbsp;&lt;tt&gt;previous&lt;/tt&gt;.<br />
</span><span style="color: rgb(0, 128, 128);">112</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">113</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;set(E&nbsp;e);<br />
</span><span style="color: rgb(0, 128, 128);">114</span>&nbsp;<span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">115</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">/**</span><span style="color: rgb(0, 128, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">116</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;Inserts&nbsp;the&nbsp;specified&nbsp;element&nbsp;into&nbsp;the&nbsp;list&nbsp;(optional&nbsp;operation).&nbsp;&nbsp;The<br />
</span><span style="color: rgb(0, 128, 128);">117</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;element&nbsp;is&nbsp;inserted&nbsp;immediately&nbsp;before&nbsp;the&nbsp;next&nbsp;element&nbsp;that&nbsp;would&nbsp;be<br />
</span><span style="color: rgb(0, 128, 128);">118</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;returned&nbsp;by&nbsp;&lt;tt&gt;next&lt;/tt&gt;,&nbsp;if&nbsp;any,&nbsp;and&nbsp;after&nbsp;the&nbsp;next&nbsp;element&nbsp;that<br />
</span><span style="color: rgb(0, 128, 128);">119</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;&lt;tt&gt;previous&lt;/tt&gt;,&nbsp;if&nbsp;any.&nbsp;&nbsp;(If&nbsp;the&nbsp;list&nbsp;contains<br />
</span><span style="color: rgb(0, 128, 128);">120</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;no&nbsp;elements,&nbsp;the&nbsp;new&nbsp;element&nbsp;becomes&nbsp;the&nbsp;sole&nbsp;element&nbsp;on&nbsp;the&nbsp;list.)<br />
</span><span style="color: rgb(0, 128, 128);">121</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;The&nbsp;new&nbsp;element&nbsp;is&nbsp;inserted&nbsp;before&nbsp;the&nbsp;implicit&nbsp;cursor:&nbsp;a&nbsp;subsequent<br />
</span><span style="color: rgb(0, 128, 128);">122</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;next&lt;/tt&gt;&nbsp;would&nbsp;be&nbsp;unaffected,&nbsp;and&nbsp;a&nbsp;subsequent&nbsp;call&nbsp;to<br />
</span><span style="color: rgb(0, 128, 128);">123</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&lt;tt&gt;previous&lt;/tt&gt;&nbsp;would&nbsp;return&nbsp;the&nbsp;new&nbsp;element.&nbsp;&nbsp;(This&nbsp;call&nbsp;increases<br />
</span><span style="color: rgb(0, 128, 128);">124</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;by&nbsp;one&nbsp;the&nbsp;value&nbsp;that&nbsp;would&nbsp;be&nbsp;returned&nbsp;by&nbsp;a&nbsp;call&nbsp;to&nbsp;&lt;tt&gt;nextIndex&lt;/tt&gt;<br />
</span><span style="color: rgb(0, 128, 128);">125</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;or&nbsp;&lt;tt&gt;previousIndex&lt;/tt&gt;.)<br />
</span><span style="color: rgb(0, 128, 128);">126</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">127</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@param</span><span style="color: rgb(0, 128, 0);">&nbsp;e&nbsp;the&nbsp;element&nbsp;to&nbsp;insert.<br />
</span><span style="color: rgb(0, 128, 128);">128</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;UnsupportedOperationException&nbsp;if&nbsp;the&nbsp;&lt;tt&gt;add&lt;/tt&gt;&nbsp;method&nbsp;is<br />
</span><span style="color: rgb(0, 128, 128);">129</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;supported&nbsp;by&nbsp;this&nbsp;list&nbsp;iterator.<br />
</span><span style="color: rgb(0, 128, 128);">130</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">131</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;ClassCastException&nbsp;if&nbsp;the&nbsp;class&nbsp;of&nbsp;the&nbsp;specified&nbsp;element<br />
</span><span style="color: rgb(0, 128, 128);">132</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prevents&nbsp;it&nbsp;from&nbsp;being&nbsp;added&nbsp;to&nbsp;this&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">133</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*<br />
</span><span style="color: rgb(0, 128, 128);">134</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;</span><span style="color: rgb(128, 128, 128);">@exception</span><span style="color: rgb(0, 128, 0);">&nbsp;IllegalArgumentException&nbsp;if&nbsp;some&nbsp;aspect&nbsp;of&nbsp;this&nbsp;element<br />
</span><span style="color: rgb(0, 128, 128);">135</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prevents&nbsp;it&nbsp;from&nbsp;being&nbsp;added&nbsp;to&nbsp;this&nbsp;list.<br />
</span><span style="color: rgb(0, 128, 128);">136</span>&nbsp;<span style="color: rgb(0, 128, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">*/</span><span style="color: rgb(0, 0, 0);"><br />
</span><span style="color: rgb(0, 128, 128);">137</span>&nbsp;<span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);">&nbsp;add(E&nbsp;e);<br />
</span><span style="color: rgb(0, 128, 128);">138</span>&nbsp;<span style="color: rgb(0, 0, 0);">}</span></div>
<br />
<br />
<img src ="http://www.blogjava.net/fred-fudan/aggbug/215988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-19 11:53 <a href="http://www.blogjava.net/fred-fudan/articles/215988.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>LinkedList 类分析</title><link>http://www.blogjava.net/fred-fudan/articles/215860.html</link><dc:creator>fred.li</dc:creator><author>fred.li</author><pubDate>Fri, 18 Jul 2008 08:48:00 GMT</pubDate><guid>http://www.blogjava.net/fred-fudan/articles/215860.html</guid><wfw:comment>http://www.blogjava.net/fred-fudan/comments/215860.html</wfw:comment><comments>http://www.blogjava.net/fred-fudan/articles/215860.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fred-fudan/comments/commentRss/215860.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fred-fudan/services/trackbacks/215860.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->&nbsp;&nbsp;&nbsp;1&nbsp;package&nbsp;java.util;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;3...&nbsp;&nbsp;<a href='http://www.blogjava.net/fred-fudan/articles/215860.html'>阅读全文</a><img src ="http://www.blogjava.net/fred-fudan/aggbug/215860.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fred-fudan/" target="_blank">fred.li</a> 2008-07-18 16:48 <a href="http://www.blogjava.net/fred-fudan/articles/215860.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>