﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JSSAY&#039;S BLOG &#187; Java</title>
	<atom:link href="http://www.jssay.com/blog/index.php/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jssay.com/blog</link>
	<description>关注Java, Linux, 互联网, SEO, Wordpress, Jquery, Web前端</description>
	<lastBuildDate>Fri, 30 Sep 2011 09:13:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>2010最新Java笔试（面试）宝典</title>
		<link>http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/</link>
		<comments>http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 04:22:05 +0000</pubDate>
		<dc:creator>aney</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[java笔试题]]></category>
		<category><![CDATA[java面试题]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=1464</guid>
		<description><![CDATA[网上闲逛的时候发现一份非常好的Java资源，里面包含最新最全的面试笔试题，虽然有些题目已经很老了，几年前在我面试的时候都已经看过，但是里面也不乏新的面试和笔试题，譬如里面还收录了中兴、华为、谷歌等大公司的面试和笔试题，十分具有参考意义。

如果你最近准备跳槽了，或者你早就有这打算但是还没有具体行动起来，或者说还很迷茫不知道如何开始的话，请看看这些题目吧。个人觉得这是一份非常好的资源，所以特别向你推荐。]]></description>
			<content:encoded><![CDATA[<p>网上闲逛的时候发现一份非常好的Java资源，里面包含最新最全的面试笔试题，虽然有些题目已经很老了，几年前在我面试的时候都已经看过，但是里面也不乏新的面试和笔试题，譬如里面还收录了中兴、华为、谷歌等大公司的面试和笔试题，十分具有参考意义。</p>
<p>如果你最近准备跳槽了，或者你早就有这打算但是还没有具体行动起来，或者说还很迷茫不知道如何开始的话，请看看这些题目吧。个人觉得这是一份非常好的资源，所以特别向你推荐。</p>
<p>如果觉得还行，请不要忘了留下你珍贵的评论。我们会继续搜集这类资源，祝愿广大Java工作者都能找到心目中的理想工作。</p>
<p><a href="http://www.jssay.com/blog/wp-content/uploads/2010/10/JAVA笔试宝典.rar">点击此处下载》</a>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/">http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年04月28日 -- <a href="http://www.jssay.com/blog/index.php/2010/04/28/java%e9%9d%a2%e8%af%95%e9%a2%98/" title="java面试题">java面试题</a></li><li>2010年01月29日 -- <a href="http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/" title="浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法">浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法</a></li><li>2009年10月21日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/" title="用Java取文件夹下最新文件">用Java取文件夹下最新文件</a></li><li>2009年10月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/" title="Lucene入门实例">Lucene入门实例</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/" title="用Map作为数据源实现分页效果">用Map作为数据源实现分页效果</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法</title>
		<link>http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/</link>
		<comments>http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 16:05:57 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=584</guid>
		<description><![CDATA[在Java开发中，我们经常会用到这两个比较运算符，因此掌握它们的用法显得十分重要，下面是我的一些理解，欢迎批评指正：
1. 首先，他们的共同点是参与比较的类型必须一致，或者是父类与子类的关系，否则就无法进行比较。
2. &#8220;==&#8221;常用来比较两个基本类型，比如int,long,float&#8230;等，而equals只能用来比较引用类型。
3. &#8220;==&#8221;也可以用来比较两个引用类型，比较时判断两个变量是不是指向同一个引用，即这两个值是不是存储在同一块内存空间，下面打印结果为：true

      String a = “hello";
      String b = "hello";
      System.out.println(a == b);

另外一种情况的打印结果为:false

      String a = new String(“hello");
      String b = new String("hello");
      [...]]]></description>
			<content:encoded><![CDATA[<p>在Java开发中，我们经常会用到这两个比较运算符，因此掌握它们的用法显得十分重要，下面是我的一些理解，欢迎批评指正：</p>
<p>1. 首先，他们的共同点是参与比较的类型必须一致，或者是父类与子类的关系，否则就无法进行比较。</p>
<p>2. &#8220;==&#8221;常用来比较两个基本类型，比如int,long,float&#8230;等，而equals只能用来比较引用类型。</p>
<p>3. &#8220;==&#8221;也可以用来比较两个引用类型，比较时判断两个变量是不是指向同一个引用，即这两个值是不是存储在同一块内存空间，下面打印结果为：true<br />
<code><br />
      String a = “hello";<br />
      String b = "hello";<br />
      System.out.println(a == b);<br />
</code></p>
<p>另外一种情况的打印结果为:false<br />
<code><br />
      String a = new String(“hello");<br />
      String b = new String("hello");<br />
      System.out.println(a == b);<br />
</code><br />
后一种情况下，两次都开辟了新的内存空间，所以a和b被看成不同的引用。</p>
<p>然而我们在比较两个字符串相等时，如果用”==“就显得没有意义，因为他只能判断他们是否指向同一个引用，而并不是比较两个字符串的内容。如果要比较两个引用类型的内容的话，就要用到equals方法了。</p>
<p>下面这个情况的打印结果为true<br />
<code><br />
      String a = new String(“hello");<br />
      String b = new String("hello");<br />
      System.out.println(a.equals(b));<br />
</code><br />
因为他们的类型相同，且内容也相同，所以返回为TRUE。</p>
<p>4.equals方法是Object类的方法，所以这个方法可以被重写。许多包装类如Double, Integer&#8230;等都重写了这个方法。举个例子：</p>
<p><code><br />
//实体类<br />
public class Person {<br />
	private String name;<br />
	private int age;<br />
	public String getName() {<br />
		return name;<br />
	}<br />
	public void setName(String name) {<br />
		this.name = name;<br />
	}<br />
	public int getAge() {<br />
		return age;<br />
	}<br />
	public void setAge(int age) {<br />
		this.age = age;<br />
	}<br />
	public Person(String name, int age) {<br />
		this.name = name;<br />
		this.age = age;<br />
	}<br />
	@Override<br />
	public boolean equals(Object arg0) {<br />
		// TODO Auto-generated method stub<br />
		if(this==arg0)return true;<br />
		if(!(arg0 instanceof Person)) return false;<br />
		Person p = (Person)arg0;<br />
		if(p.name == this.name)return true;<br />
		return false;<br />
	}</p>
<p>}</p>
<p>//测试类<br />
public class TestEqual {</p>
<p>	/**<br />
	 * @param args<br />
	 */<br />
	public static void main(String[] args) {<br />
		// TODO Auto-generated method stub<br />
		String s1 = new String("hello");<br />
		String s2 = new String("hello");<br />
		System.out.println(s1==s2);<br />
		System.out.println(s1.equals(s2));</p>
<p>		Person p1 = new Person("Tom", 23);</p>
<p>		Person p2 = new Person("Tom", 22);</p>
<p>		System.out.println(p1==p2);<br />
		System.out.println(p1.equals(p2));</p>
<p>	}</p>
<p>}<br />
</code><br />
我们通过重写equals方法，可以指定Person的name属性相同就可以确定两个此类型的变量相等。打印结果为true.如果用&#8221;==&#8221;的话，结果应该是false.</p>
<p>本文系个人原创，转载时请注明出处！
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/">http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年10月16日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/" title="2010最新Java笔试（面试）宝典">2010最新Java笔试（面试）宝典</a></li><li>2009年10月21日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/" title="用Java取文件夹下最新文件">用Java取文件夹下最新文件</a></li><li>2009年10月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/" title="Lucene入门实例">Lucene入门实例</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/" title="用Map作为数据源实现分页效果">用Map作为数据源实现分页效果</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Java取文件夹下最新文件</title>
		<link>http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 04:36:17 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=152</guid>
		<description><![CDATA[我想从一个文件夹下取出最新的一个文件,然后把它的文件名显示出来.想了一个办法,可能是比较笨的方法,希望能抛砖引玉...]]></description>
			<content:encoded><![CDATA[<p>我想从一个文件夹下取出最新的一个文件,然后把它的文件名显示出来.想了一个办法,可能是比较笨的方法,希望能抛砖引玉.</p>
<p>解决方案是:</p>
<p>1, 遍历文件夹下的所有文件,将文件名和文件的最后修改时间push到一个Map中,用Last Modified time作为key,file name作为value.<br />
<code></p>
<p>List dateList = new ArrayList();</p>
<p>public Map readfile(String filepath){<br />
    Map map = null;<br />
    try {<br />
        map = new TreeMap();<br />
        File file = new File(filepath);<br />
        if (!file.isDirectory()) {<br />
                System.out.println(filepath+" is not a folder!");<br />
        }else if (file.isDirectory()) {</p>
<p>                String[] filelist = file.list();<br />
                for (int i = 0; i < filelist.length; i++) {<br />
                  File readfile = new File(filepath + "/" + filelist[i]);<br />
                  if (!readfile.isDirectory()) {<br />
                        String fileName = readfile.getName();<br />
                        long time = readfile.lastModified();<br />
                        dateList.add(new Long(time));<br />
                        map.put(String.valueOf(time), fileName);<br />
                        }<br />
                }<br />
        }</p>
<p>    }catch (Exception e) {<br />
      System.out.println("readfile()   Exception:" + e.getMessage());<br />
    }<br />
    return map;<br />
  }</p>
<p></code></p>
<p>2. 将这个Map的Key按时间排序.</p>
<p><code><br />
Collections.sort(dateList,new Comparator(){<br />
                public int compare(Object o1,Object o2) {<br />
                Long p1 = (Long)o1;<br />
                Long p2 = (Long)o2;<br />
                if(p1.longValue()
<p2.longValue())<br />
                        return 1;<br />
                else<br />
                        return 0;<br />
        }});<br />
</code>
<p>3.根据排好序的key取出文件名,那么第一个就是我们所要的最新的文件了.</p>
<p><code><br />
String date = null;<br />
String fileName = null;</p>
<p>if(map!=null &#038;&#038; map.size()!=0){<br />
                for(int i=0; i<dateList.size(); i++){<br />
                        date = String.valueOf(dateList.get(i));<br />
                        fileName = (String)map.get(date);<br />
                       	break;<br />
                }<br />
        }<br />
System.out.println("The newest file is: " + fileName);<br />
</code>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/">http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年10月16日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/" title="2010最新Java笔试（面试）宝典">2010最新Java笔试（面试）宝典</a></li><li>2010年01月29日 -- <a href="http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/" title="浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法">浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法</a></li><li>2009年10月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/" title="Lucene入门实例">Lucene入门实例</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/" title="用Map作为数据源实现分页效果">用Map作为数据源实现分页效果</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lucene入门实例</title>
		<link>http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 13:16:44 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[WEB前端]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Lucene]]></category>
		<category><![CDATA[Search Engineer]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/?p=133</guid>
		<description><![CDATA[<strong>Lucene</strong>是一款基于Java的全文搜索工具，他的功能强大，大到可以搜索几乎所有格式的文件，你可以通过一个关键字搜到你需要的所有格式的文件。对于Java开发者来说，这真是太棒了，开发一个小型的搜索引擎用于自己的项目上，还是比较有成就感的。]]></description>
			<content:encoded><![CDATA[<p><strong>Lucene</strong>是一款基于Java的全文搜索工具，他的功能强大，大到可以搜索几乎所有格式的文件，你可以通过一个关键字搜到你需要的所有格式的文件。对于Java开发者来说，这真是太棒了，开发一个小型的搜索引擎用于自己的项目上，还是比较有成就感的。</p>
<p>通过下面的这个例子，可以对Lucene有一个比较全面的认识，如果想再深入一点可以找本书啃一啃，鉴于目前市面上的有关Lucene的书不多，像《Lucene in Action》，个人觉得网上的资料也就够用了，况且电子书都可以下载到（参看附件）。</p>
<p>废话少说，先看例子：</p>
<p><code><br />
public class LuceneTest {</p>
<p>	public static void main(String[] args) {<br />
		try {<br />
			LuceneTest luceneTest = new LuceneTest();<br />
			// 创建索引<br />
			luceneTest.index();<br />
			// 在索引所在目录下搜索"中国 金牌"<br />
			luceneTest.search("风");<br />
		} catch (Exception e) {<br />
			e.printStackTrace();<br />
		}<br />
		System.out.println("ok");<br />
	}</p>
<p>	public void index() throws Exception {<br />
		/* 创建索引初始化，执行这些语句将创建或清空d:\\save\\目录下所有索引 */<br />
		IndexWriter writer1 = new IndexWriter("d:\\save\\",<br />
				new StandardAnalyzer(), true);<br />
		writer1.close();</p>
<p>		/*<br />
		 * 往创建的初始化索引中添加索引内容，StandardAnalyzer表示用lucene自带的标准分词机制，<br />
		 * false表示不覆盖原来该目录的索引，细心的读者可能已经发现， 这句话和上面的那句就这个false不一样<br />
		 */<br />
		IndexWriter writer2 = new IndexWriter("d:\\save\\",<br />
				new StandardAnalyzer(), false);<br />
		/* 创建一份文件 */<br />
		Document doc1 = new Document();<br />
		/*<br />
		 * 创建一个域ArticleTitle，并往这个域里面添加内容 "Field.Store.YES"表示域里面的内容将被存储到索引<br />
		 * "Field.Index.TOKENIZED"表示域里面的内容将被索引，以便用来搜索<br />
		 */<br />
		Field field1 = new Field("ArticleTitle", "北京2008年奥运会", Field.Store.YES,<br />
				Field.Index.TOKENIZED);<br />
		/* 往文件里添加这个域 */<br />
		doc1.add(field1);<br />
		/* 同理：创建另外一个域ArticleText，并往这个域里面添加内容 */<br />
		Field field2 = new Field("ArticleText", "这是一届创造奇迹、超越梦想的奥运会.......",<br />
				Field.Store.YES, Field.Index.TOKENIZED);<br />
		doc1.add(field2);<br />
		// 在这里还可以添加其他域<br />
		/* 添加这份文件到索引 */<br />
		writer2.addDocument(doc1);</p>
<p>		/* 同理：创建第二份文件 */<br />
		Document doc2 = new Document();<br />
		field1 = new Field("ArticleTitle", "中国获得全球赞誉", Field.Store.YES,<br />
				Field.Index.TOKENIZED);<br />
		doc2.add(field1);<br />
		field2 = new Field("ArticleText", "中国所取得的金牌总数占据排行榜的榜首........",<br />
				Field.Store.YES, Field.Index.TOKENIZED);<br />
		doc2.add(field2);</p>
<p>		writer2.addDocument(doc2);</p>
<p>		// 在这里可以添加其他文件</p>
<p>		/* 关闭 */<br />
		writer2.close();<br />
	}</p>
<p>	public void search(String serchString) throws Exception {<br />
		/* 创建一个搜索，搜索刚才创建的d:\\save\\目录下的索引 */<br />
		IndexSearcher indexSearcher = new IndexSearcher("d:\\save\\");<br />
		/* 在这里我们只需要搜索一个目录 */<br />
		IndexSearcher indexSearchers[] = { indexSearcher };<br />
		/* 我们需要搜索两个域"ArticleTitle", "ArticleText"里面的内容 */<br />
		String[] fields = { "ArticleTitle", "ArticleText" };<br />
		/* 下面这个表示要同时搜索这两个域，而且只要一个域里面有满足我们搜索的内容就行 */<br />
		BooleanClause.Occur[] clauses = { BooleanClause.Occur.SHOULD,<br />
				BooleanClause.Occur.SHOULD };<br />
		/*<br />
		 * MultiFieldQueryParser表示多个域解析，<br />
		 * 同时可以解析含空格的字符串，如果我们搜索"中国 金牌"，根据前面的索引，显然搜到的是第二份文件<br />
		 */<br />
		Query query = MultiFieldQueryParser.parse(serchString, fields, clauses,<br />
				new StandardAnalyzer());<br />
		/* Multisearcher表示多目录搜索，在这里我们只有一个目录 */<br />
		MultiSearcher searcher = new MultiSearcher(indexSearchers);<br />
		/* 开始搜索 */<br />
		Hits h = searcher.search(query);<br />
		/* 把搜索出来的所有文件打印出来 */<br />
		for (int i = 0; i < h.length(); i++) {<br />
			/* 打印出文件里面ArticleTitle域里面的内容 */<br />
			System.out.println(h.doc(i).get("ArticleTitle"));<br />
			/* 打印出文件里面ArticleText域里面的内容 */<br />
			System.out.println(h.doc(i).get("ArticleText"));<br />
		}<br />
		/* 关闭 */<br />
		searcher.close();<br />
	}<br />
}<br />
</code></p>
<p>Refer to <a href="http://phz50.javaeye.com/blog/232429">http://phz50.javaeye.com/blog/232429</a><br />
愿意和大家一起学习交流Lucene，如果问题请留言！</p>
<p>Related Links:<br />
<a href="http://www.lucene.com.cn">Lucene中文网站</a><br />
<a href="http://www.lucene.com">Lucene英文网站</a><br />
<a href="http://lucene.apache.org">Lucene官方网站</a><br />
<a href="http://www.jssay.com/ebook/Lucene%20in%20Action 中文版.pdf">Lucene In Action 中文版</a><br />
<a href="http://www.lucene.com.cn/Lucene_in_%20Action.pdf">Lucene In Action 英文版</a>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/">http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2009年10月21日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8lucene%e6%a3%80%e7%b4%a2%e5%a4%9a%e4%b8%aa%e7%b4%a2%e5%bc%95%e7%9b%ae%e5%bd%95/" title="用Lucene检索多个索引目录">用Lucene检索多个索引目录</a></li><li>2010年10月16日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/" title="2010最新Java笔试（面试）宝典">2010最新Java笔试（面试）宝典</a></li><li>2010年01月29日 -- <a href="http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/" title="浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法">浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法</a></li><li>2009年11月9日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/09/lucene%e7%b4%a2%e5%bc%95pdf%e6%96%87%e6%a1%a3/" title="Lucene索引PDF文档">Lucene索引PDF文档</a></li><li>2009年10月21日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/" title="用Java取文件夹下最新文件">用Java取文件夹下最新文件</a></li><li>2009年10月18日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/" title="用Map作为数据源实现分页效果">用Map作为数据源实现分页效果</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>用Map作为数据源实现分页效果</title>
		<link>http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/</link>
		<comments>http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/#comments</comments>
		<pubDate>Sun, 18 Oct 2009 11:54:21 +0000</pubDate>
		<dc:creator>jssay</dc:creator>
				<category><![CDATA[程序设计]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Map]]></category>

		<guid isPermaLink="false">http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/</guid>
		<description><![CDATA[大部分情况下我们需要实现分页效果的数据源都是数据库，对于这种情况我们可以用游标来控制输出的记录数，但是如果数据源不是数据库，那就需要我们自己手工写一个方法去实现。]]></description>
			<content:encoded><![CDATA[<p>大部分情况下我们需要实现分页效果的数据源都是数据库，对于这种情况我们可以用游标来控制输出的记录数，但是如果数据源不是数据库，那就需要我们自己手工写一个方法去实现。</p>
<p>现在情况是这样：</p>
<p>我要的数据在一个XML文件中，我通过java解析数据到一个Map中，然后我要在jsp中显示这个Map中的数据，每页显示10条数据，代码如下：</p>
<p><code><br />
/**<br />
	 * jssay jiang<br />
	 * since 2009-10-18<br />
	 * @param currentPage<br />
	 * @param allRecordsMap<br />
	 * @param maxRecords<br />
	 * @return<br />
	 */<br />
	public Map getSubRecords(int currentPage,  int maxRecords, Map allRecordsMap){<br />
		int count = 0;<br />
		int item = 0;<br />
		Map subRecordsMap = new LinkedHashMap();<br />
		Set set = allRecordsMap.keySet();</p>
<p>		String key = null;<br />
		String value = null;</p>
<p>		for(Iterator iter = set.iterator();iter.hasNext();){<br />
			if(count == (currentPage-1) * maxRecords){<br />
				if(item != maxRecords){<br />
					key = (String)iter.next();<br />
					value = (String)allRecordsMap.get(key);<br />
					subRecordsMap.put(key, value);<br />
				}else{<br />
					item++;<br />
				}<br />
			}else{<br />
				//move to next record<br />
				<strong>iter.next();</strong><br />
                                                   count++;<br />
			}<br />
		}<br />
		return subRecordsMap;<br />
	}<br />
</code></p>
<p>在以上这段代码中，最值得注意的就是<strong>iter.next();</strong>这句，它就相当于数据库中的游标指向下一条记录，少了它取到的始终是头10条记录。具体在实现分页的时候只要将当前页面数传给这个函数就可以了，剩下的就很easy了！</p>
<div style="margin-top: 15px; font-style: italic">
<p><strong>本Blog文章除特别声明之外皆为原创文章，欢迎转载，转载请注明：</strong> 转载自<a href="http://www.jssay.com/blog/">JSSAY&#039;S BLOG</a></p>
<p><strong>本文链接地址:</strong> <a href="http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/">http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/</a></p>
</div>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2870579454529881";
/* 页脚，468x60的广告 */
google_ad_slot = "6663520172";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2  class="related_post_title">相关文章</h2><ul class="related_post"><li>2010年10月16日 -- <a href="http://www.jssay.com/blog/index.php/2010/10/16/2010-new-java-written-interview-collection/" title="2010最新Java笔试（面试）宝典">2010最新Java笔试（面试）宝典</a></li><li>2010年01月29日 -- <a href="http://www.jssay.com/blog/index.php/2010/01/29/%e6%b5%85%e8%b0%88%e4%b8%8eequals%e7%9a%84%e7%94%a8%e6%b3%95/" title="浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法">浅谈&#8221;==&#8221;与&#8221;equals&#8221;的用法</a></li><li>2009年11月27日 -- <a href="http://www.jssay.com/blog/index.php/2009/11/27/java%e5%ae%b9%e5%99%a8/" title="java容器">java容器</a></li><li>2009年10月21日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/21/%e7%94%a8java%e5%8f%96%e6%96%87%e4%bb%b6%e5%a4%b9%e4%b8%8b%e6%9c%80%e6%96%b0%e6%96%87%e4%bb%b6/" title="用Java取文件夹下最新文件">用Java取文件夹下最新文件</a></li><li>2009年10月19日 -- <a href="http://www.jssay.com/blog/index.php/2009/10/19/lucene%e5%85%a5%e9%97%a8%e5%ae%9e%e4%be%8b/" title="Lucene入门实例">Lucene入门实例</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://www.jssay.com/blog/index.php/2009/10/18/%e7%94%a8map%e4%bd%9c%e4%b8%ba%e6%95%b0%e6%8d%ae%e6%ba%90%e5%ae%9e%e7%8e%b0%e5%88%86%e9%a1%b5%e6%95%88%e6%9e%9c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

