﻿<?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-sisyphus的博客</title><link>http://www.blogjava.net/sisyphus-blog/</link><description>热爱生活</description><language>zh-cn</language><lastBuildDate>Mon, 18 May 2026 15:12:36 GMT</lastBuildDate><pubDate>Mon, 18 May 2026 15:12:36 GMT</pubDate><ttl>60</ttl><item><title>Java集合学习笔记</title><link>http://www.blogjava.net/sisyphus-blog/archive/2011/08/06/355918.html</link><dc:creator>sisyphus</dc:creator><author>sisyphus</author><pubDate>Sat, 06 Aug 2011 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/sisyphus-blog/archive/2011/08/06/355918.html</guid><wfw:comment>http://www.blogjava.net/sisyphus-blog/comments/355918.html</wfw:comment><comments>http://www.blogjava.net/sisyphus-blog/archive/2011/08/06/355918.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/sisyphus-blog/comments/commentRss/355918.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/sisyphus-blog/services/trackbacks/355918.html</trackback:ping><description><![CDATA[<p><font style="background-color: #c7edcc" face="Verdana">类集就是一个动态的对象数组，可以存储数量不等的多个对象</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">对象数组：可以保存多个对象在一个数组中</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">问题：数组的长度是不可改变的，而类集的大小不确定可以任意的扩充或减少</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">三个核心接口<br />1、 Collection---List(ArrayList,LinkedList)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ---Set<br />List<br />操作：add()<br />List all=new ArrayList();<br />all.add("MLDN");<br />all.add("LXH");<br />默认情况下加入数据的顺序就是输出的顺序<br />可以使用特定的方法向指定的位置增加<br />使用类集时，加入的对象最好一种对象</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">从对象数组中删除数据用remove()<br />一个个打印元素的方法：<br />&nbsp;&nbsp;&nbsp;&nbsp; 1、用for循环(size()获取类集的大小、get(int indenx)返回指定位置的元素)<br />&nbsp; 2、Iterator (开发中集合都是用该接口输出)<br />&nbsp;&nbsp;&nbsp;&nbsp; 因为集合的长度不固定，所以Iterator采用的方法是一个个判断输出，<br />&nbsp;&nbsp;如果有下一个元素就执行，如果没有下一个元素就不执行<br />&nbsp;&nbsp;判断是否有下一个元素：public boolean hasNext();<br />&nbsp;&nbsp;取内容:public Object next()<br />&nbsp;&nbsp;Iterator iter=集合对象.iterator();<br />&nbsp;&nbsp;while(iter.hasNext()){<br />&nbsp;&nbsp;&nbsp;object obj = iter.next();<br />&nbsp;&nbsp;&nbsp;System.out.println(obj);<br />&nbsp;&nbsp;}</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">如何让一个集合只加入一种对象<br />List&lt;java.lang.String&gt;all = new ArrayList&lt;java.lang.String&gt;();<br />便于转型</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">(Collection)集合操作的方法总结：<br />向集合中加入数据；<br />从集合中删除数据；<br />为Iterator实例化；<br />取出元素的个数。<br />Set<br />区别： HashSet 子类加入的对象是无序的;(散列存放)<br />&nbsp;&nbsp;&nbsp; List 中可以存放重复元素， Set 中不允许存在重复元素<br />如果希望Set中的数据按顺序(数据的大小不是放入数据的顺序)存放则应该使用TreeSet子类<br />靠的是Comparable()接口</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">2、 Map<br />Map的主要功能是作为查找使用而不是作为输出使用<br />存取数据的方法：put(Object key,Object value)<br />取内容：Object get(Object key)<br />Map&lt;java.lang.String,java.lang.String&gt; m = new HashMap&lt;java.lang.String,java.lang.String&gt;() ;<br />m.put("张三","123456") ;<br />m.put("李四","654321") ;<br />System.out.println(m.get("赵六")) ;//null</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">Map 接口的对象不能直接使用Iterator输出<br />&nbsp;//下面的这个方法了解即可<br />&nbsp;如果非要使用Iterator输出Map接口对象的内容，则必须使用以下步骤<br />Map &#8212;&#8212;&gt;Set &#8212;&#8212;&gt; Iterator &#8212;&#8212;&gt; Map.Entry &#8212;&#8212;&gt; key、values</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">Set all = m.entrySet() ;<br />Iterator iter = all.iterator() ;<br />while(iter.hasNext()){<br />&nbsp;Map.Entry me = (Map.Entry)iter.next() ;<br />&nbsp;System.out.println(me.getKey()+" --&gt; "+me.getValue()) ;<br />}</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">3、 Iterator</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">4、 Enumeration :枚举，与Iterator的功能一致，都是用于输出集合中的内容</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">List 和 Set 都不能使用 Enumeration 输出<br />而 List 的另一个子类： Vector 可以使用Enumeration输出</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">Vector 是一个同步操作 性能不是很好 因此后来让 Vector 也实现了 Iterator 接口<br />使用实例：<br />Vector v = new Vector() ;<br />v.add("A") ;<br />v.add("A") ;<br />v.add("A") ;<br />Enumeration e = v.elements() ;<br />while(e.hasMoreElements()){<br />&nbsp;System.out.println(e.nextElement()) ;<br />}</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">5、 Stack&nbsp; (Vector 的子类)(先进后出)<br />Stack s = new Stack() ;<br />s.push("A") ;<br />s.push("B") ;<br />s.push("C") ;<br />s.push("D") ;<br />s.push("E") ;<br />// 取值<br />while(!s.empty()){<br />&nbsp;System.out.println(s.pop()) ;<br />}</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">浏览器的前进和后退就是用栈实现的</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">6、 Hashtable 与 HashMap 相似，但 Hashtable 是同步的</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">7、 Properties 类是 Hashtable 的子类<br />&nbsp;不同之处： Properties 类主要是保存字符串的，而 Hashtable 是保存对象的。<br />&nbsp;setProperties(String key,String value)<br />&nbsp;getProperties(String key)</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">8、 ArrayList 与 Vector </font></p>
<p><font style="background-color: #c7edcc" face="Verdana">&nbsp;异步&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 同步<br />&nbsp;只支持 Iterator 输出| 支持 Iterator 和 Enumeration 输出<br />&nbsp;&nbsp;&nbsp; 出现较晚&nbsp;&nbsp; | 出现较早<br />9、 HashMap 与 Hashtable<br />&nbsp;异步&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 同步<br />&nbsp;不直接支持Iterator输出| 不直接支持Iterator输出<br />&nbsp;出现较晚&nbsp;&nbsp; | 出现较早</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">10、本章重点</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">HashMap 与 Hashtable<br />ArrayList 与 Vector<br />Iterator 与 Enumeration</font></p>
<p><font style="background-color: #c7edcc" face="Verdana">保存单个值的集合:Collection:<br />&nbsp;|---List:允许有重复元素<br />&nbsp;&nbsp;|---ArrayList:异步处理，新的类，只能用 Iterator 输出<br />&nbsp;&nbsp;|---Vector:同步处理，旧的类，能 Iterator 和 Enumeration 输出<br />&nbsp;|---Set:不允许有重复元素<br />&nbsp;&nbsp;|---HashSet:散列，无序<br />&nbsp;&nbsp;|---TreeSet:有序，按 Comparable 排序<br />保存一对值的集合(Map):<br />&nbsp;|---HashMap:异步处理新的类<br />&nbsp;|---Hashtable:同步处理旧的类<br />&nbsp;|---TreeMap:按KEY进行排列的集合<br />输出:<br />&nbsp;|---Iterator:新的输出类，方法名称较短<br />&nbsp;|---Enumeration:旧的输出类，方法名称较长</font></p><img src ="http://www.blogjava.net/sisyphus-blog/aggbug/355918.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/sisyphus-blog/" target="_blank">sisyphus</a> 2011-08-06 16:47 <a href="http://www.blogjava.net/sisyphus-blog/archive/2011/08/06/355918.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>