??xml version="1.0" encoding="utf-8" standalone="yes"?>91麻豆精品久久久久蜜臀 ,中文字幕亚洲国产,成人精品视频久久久久http://www.aygfsteel.com/haoqingshi/articles/21937.htmlJava&InterJava&InterWed, 30 Nov 2005 04:00:00 GMThttp://www.aygfsteel.com/haoqingshi/articles/21937.htmlhttp://www.aygfsteel.com/haoqingshi/comments/21937.htmlhttp://www.aygfsteel.com/haoqingshi/articles/21937.html#Feedback0http://www.aygfsteel.com/haoqingshi/comments/commentRss/21937.htmlhttp://www.aygfsteel.com/haoqingshi/services/trackbacks/21937.htmlCollections 的排序【{? -                                      

 在?Java Collections Framework Ӟ必须知道 Collections cM的变量是哪些。这个类包含大量支持集合操作的静(rn)态方法。在q里Q我们不?x)对所有方法进行介l,因ؓ(f)(zhn)可以自己阅?APIQ但是我们将介绍两个l常出现?Java 代码中的Ҏ(gu)Q?

  • copy()
  • sort()

W一个方法允许将一个集合的内容复制到另一个集合,如下所C:(x)


List source = new ArrayList();
source.add("one");
source.add("two");
List target = new ArrayList();
target.add("three");
target.add("four");

Collections.copy(target, source);
System.out.println(target);

该代码将 source 复制?target 中。目标代码的大小必须与源代码的大相同,q样Q就无法?List 复制到空?List 中?/P>

sort() Ҏ(gu)元素归类成其自然序。所有元素都必须实现 Comparable 接口Q这P它们可?I>怺比较。像 String q样的内|类也已l创建。因此,对于一l字W串而言Q可以用以下代码按照字兔R序的升序序对字W串q行排序Q?/P>


List strings = new ArrayList();
strings.add("one");
strings.add("two");
strings.add("three");
strings.add("four");

Collections.sort(strings);
System.out.println(strings);
 

(zhn)将在控制台中获?[four, one, three, two]。但是现在可以对创徏的类q行分类吗?可以?Adult q行分类。首先要让类q行怺比较Q?/P>


public class Adult extends Person implements Comparable {
	...
} 

然后要重?compareTo() 来比较两?Adult 实例。我们将保持我们的例子在比较斚w的简单性,所以该例不?x)进行太多的比较操作Q?/P>


public int compareTo(Object other) {
	final int LESS_THAN = -1;
	final int EQUAL = 0;
	final int GREATER_THAN = 1;

	Adult otherAdult = (Adult) other;
	if ( this == otherAdult ) return EQUAL;

	int comparison = this.firstname.compareTo(otherAdult.firstname);
	if (comparison != EQUAL) return comparison;
	
	comparison = this.lastname.compareTo(otherAdult.lastname);
	if (comparison != EQUAL) return comparison;
	
	return EQUAL;
}

M于 0 的数字都意味着“小于”,但是 -1 是表C个意思一个很好用的倹{与此类|?1 表示“大于”也很方ѝ正如?zhn)可以看到的? 则意味着“等于”。以q种方式比较两个对象昄是一个手动过E。?zhn)必须遍历实例变量q比较每个变量。在q种情况下,我们要比较名和姓QƈҎ(gu)姓氏有效地对Zq行排序。但是?zhn)应该能够明白Z么我们的例子q于单。每?Adult 都只有一个名和姓。如果想q行深层的比较,那么必须比较每个 Adult ?WalletQ以查看它们是否相等Q这可能意味着我们必须?Wallet 和其余对象上实现 compareTo()。此外,Z(jin)正确q行比较Q无Z旉?compareTo()Q都必须保该比较与 equals() 是一致的。我们没有实?equals()Q所以不用担?j)要与它一_(d)但我们可以做到这一炏V事实上Q在q回 EQUAL 之前Q我已经看到包含cM以下代码行的代码Q?/P>


assert this.equals(otherAdult) : "compareTo inconsistent with equals.";

比较对象的其他方法是Q提?compareTo() 中的法Q将其放?Comparator cd的对象中Q然后对分cȝ集合调用 Collections.sort() ?ComparatorQ如下所C:(x)


public class AdultComparator implements Comparator {

	public int compare(Object object1, Object object2) {
		final int LESS_THAN = -1;
		final int EQUAL = 0;
		final int GREATER_THAN = 1;

		if ((object1 == null) ;amp;amp (object2 == null))
			return EQUAL;
		if (object1 == null)
			return LESS_THAN;
		if (object2 == null)
			return GREATER_THAN;

		Adult adult1 = (Adult) object1;
		Adult adult2 = (Adult) object2;
		if (adult1 == adult2)
			return EQUAL;

		int comparison = adult1.firstname.compareTo(adult2.firstname);
		if (comparison != EQUAL)
			return comparison;

		comparison = adult1.lastname.compareTo(adult2.lastname);
		if (comparison != EQUAL)
			return comparison;

		return EQUAL;
	}
}

public class CommunityApplication {

	public static void main(String[] args) {
		Adult adult1 = new Adult();
		adult1.setFirstname("Bob");
		adult1.setLastname("Smith");
		
		Adult adult2 = new Adult();
		adult2.setFirstname("Al");
		adult2.setLastname("Jones");
		
		List adults = new ArrayList();
		adults.add(adult1);
		adults.add(adult2);
		
		Collections.sort(adults, new AdultComparator());
		System.out.println(adults);
	}
} 

在控制台H口中,应该看到以某U顺序排列的“Al Jones”和“Bob Smith”?/P>

使用W二U方法是有一些好的理q。技术方面的理由已经出?jin)本文的讨论范围。不q,从好?OOD 的角度来看,比较代码隔d另一个对象中Q而不是ؓ(f)每个 Adult 提供自w与其他对象比较的能力是一个好L。然而,因ؓ(f)q正?equals() 要做的事Q所以即使结果是布尔|对于每种Ҏ(gu)而言Q那些仍然是一些好参数?/P>
使用集合


何时应该使用Ҏ(gu)cd的集合?q是一个由(zhn)做出的判断军_Q而且Q正是因cȝ军_Q?zhn)希望像一位编Eh员那样付出很多?/P>

管许多专业人士怿Q没有太多关于在Ml定情况下用哪些类的硬性规定。以我的个hl验而论Q大多数旉里,我用集合?CODE>ArrayList ?HashMapQ请CQ?CODE>Map 不是真正的集合)(j)获得?jin)成功。?zhn)自己M验可能也?x)有同样的效果。以下是一些经验法则,其中的一些显然要好于另外一些:(x)

  • 在认己需要一个集合时Q从使用 List 开始,然后让代码告诉?zhn)是否需要另一U类型的集合?
  • 如果需要惟一的一l什么东西,那么请?Set?
  • 在遍历集合时Q如果P代顺序很重要Q则使用可用?Tree... 风格的集合?
  • 避免使用 VectorQ除非需要利用其同步功能?
  • 直到Q除非)(j)性能出现问题Q否则不用担?j)最优化?

集合?Java 语言的最强大的一个方面。不要害怕用集合,但要提防“{向”。例如,以下是一个从 Array 转换?ArrayList 的一个便利方法:(x)


Adult adult1 = new Adult();
Adult adult2 = new Adult();
Adult adult3 = new Adult();
		
List immutableList = Arrays.asList(new Object[] { adult1, adult2, adult3 });
theList.add(new Adult());

q个代码抛出一?UnsupportedOperationExceptionQ因为由 Arrays.asList() q回?List 是不可变的。而?zhn)又无法将新的元素dC可变?List 中,所以必ȝ?j)一炏V?/STRONG>



Java&Inter 2005-11-30 12:00 发表评论
]]>
Java开发者必ȝ技术站?/title><link>http://www.aygfsteel.com/haoqingshi/articles/18692.html</link><dc:creator>Java&Inter</dc:creator><author>Java&Inter</author><pubDate>Tue, 08 Nov 2005 01:52:00 GMT</pubDate><guid>http://www.aygfsteel.com/haoqingshi/articles/18692.html</guid><wfw:comment>http://www.aygfsteel.com/haoqingshi/comments/18692.html</wfw:comment><comments>http://www.aygfsteel.com/haoqingshi/articles/18692.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/haoqingshi/comments/commentRss/18692.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/haoqingshi/services/trackbacks/18692.html</trackback:ping><description><![CDATA[<FONT face=Arial><STRONG>Java开发者必ȝ英文技术网??<BR></STRONG>[</FONT><A ><FONT face=Arial>http://www.javaalmanac.com</FONT></A><FONT face=Arial>] - Java开发者年鉴一书的在线版本. 要想快速查到某UJava技巧的用法?qing)示例代? q是一个不错的d. <BR>[</FONT><A ><FONT face=Arial>http://www.onjava.com</FONT></A><FONT face=Arial>] - O'Reilly的Java|站. 每周都有新文? <BR>[</FONT><A ><FONT face=Arial>http://java.sun.com</FONT></A><FONT face=Arial>] - 官方的Java开发者网?nbsp;- 每周都有新文章发? <BR>[</FONT><A ><FONT face=Arial>http://www.developer.com/java</FONT></A><FONT face=Arial>] - 由Gamelan.com l护的Java技术文章网? <BR>[</FONT><A ><FONT face=Arial>http://www.java.net</FONT></A><FONT face=Arial>] - Sun公司l护的一个JavaC֌|站. <BR>[</FONT><A ><FONT face=Arial>http://www.builder.com</FONT></A><FONT face=Arial>] - Cnet的Builder.com|站 - 所有的技术文? 以JavaZ. <BR>[</FONT><A ><FONT face=Arial>http://www.ibm.com/developerworks/java</FONT></A><FONT face=Arial>] - IBM的Developerworks技术网? q是其中的Java技术主? <BR>[</FONT><A ><FONT face=Arial>http://www.javaworld.com</FONT></A><FONT face=Arial>] - 最早的一个Java站点. 每周更新Java技术文? <BR>[</FONT><A ><FONT face=Arial>http://www.devx.com/java</FONT></A><FONT face=Arial>] - DevXl护的一个Java技术文章网? <BR>[</FONT><A ><FONT face=Arial>http://www.fawcette.com/javapro</FONT></A><FONT face=Arial>] - JavaPro在线杂志|站. <BR>[</FONT><A ><FONT face=Arial>http://www.sys-con.com/java</FONT></A><FONT face=Arial>] - Java Developers Journal的在U杂志网? <BR>[</FONT><A ><FONT face=Arial>http://www.javadesktop.org</FONT></A><FONT face=Arial>] - 位于Java.net的一个Java桌面技术社区网? <BR>[</FONT><A ><FONT face=Arial>http://www.theserverside.com</FONT></A><FONT face=Arial>] - q是一个讨论所有Java服务器端技术的|站. <BR>[</FONT><A ><FONT face=Arial>http://www.jars.com</FONT></A><FONT face=Arial>] - 提供Java评论服务. 包括各种framework和应用程? <BR>[</FONT><A ><FONT face=Arial>http://www.jguru.com</FONT></A><FONT face=Arial>] - 一个非常棒的采用Q&A形式的Java技术资源社? <BR>[</FONT><A ><FONT face=Arial>http://www.javaranch.com</FONT></A><FONT face=Arial>] - 一个论坛,得到Java问题{案的地方,初学者的好去处?nbsp;<BR>[</FONT><A ><FONT face=Arial>http://www.ibiblio.org/javafaq/javafaq.html</FONT></A><FONT face=Arial>] - comp.lang.java的FAQ站点 - 攉?jin)来自comp.lang.java新闻l的问题和答案的分类目录. <BR>[</FONT><A ><FONT face=Arial>http://java.sun.com/docs/books/tutorial/</FONT></A><FONT face=Arial>] - 来自SUN公司的官方Java指南 - 对于?jin)解几乎所有的java技术特性非常有帮助. <BR>[</FONT><A ><FONT face=Arial>http://www.javablogs.com</FONT></A><FONT face=Arial>] - 互联|上最z跃的一个Java Blog|站. <BR>[</FONT><A ><FONT face=Arial>http://java.about.com/</FONT></A><FONT face=Arial>] - 来自About.com的Java新闻和技术文章网?</FONT><BR><BR><FONT face=Arial><STRONG>Java开发者必ȝ中文技术网??<BR></STRONG>1.</FONT><A ><FONT face=Arial>http://www.javaresearch.org</FONT></A><BR><FONT face=Arial>2.</FONT><A ><FONT face=Arial>http://www.chinajavaworld.com</FONT></A><BR><FONT face=Arial>3.</FONT><A ><FONT face=Arial>http://www.javafan.net</FONT></A><BR><FONT face=Arial>4.</FONT><A ><FONT face=Arial>http://www.csdn.net/</FONT></A><FONT face=Arial> or </FONT><A ><FONT face=Arial>http://kb.csdn.net/</FONT></A><BR><FONT face=Arial>5.</FONT><A ><FONT face=Arial>http://www.cn-java.com/</FONT></A><BR><FONT face=Arial>6.</FONT><A ><FONT face=Arial>http://www.java-cn.com/index.html</FONT></A><BR><FONT face=Arial>7.</FONT><A ><FONT face=Arial>http://gceclub.sun.com.cn/</FONT></A><BR><FONT face=Arial>8.</FONT><A ><FONT face=Arial>http://www.zahui.com/html/6/</FONT></A><BR><FONT face=Arial>9.</FONT><A ><FONT face=Arial>http://www.matrix.org.cn/</FONT></A><BR><FONT face=Arial>10.</FONT><A ><FONT face=Arial>http://www.javajia.com/</FONT></A><BR><FONT face=Arial>11.</FONT><A ><FONT face=Arial>http://www.kissjava.com/</FONT></A><BR><FONT face=Arial>12.</FONT><A ><FONT face=Arial>http://www.huihoo.com/</FONT></A><BR><BR><img src ="http://www.aygfsteel.com/haoqingshi/aggbug/18692.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haoqingshi/" target="_blank">Java&Inter</a> 2005-11-08 09:52 <a href="http://www.aygfsteel.com/haoqingshi/articles/18692.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于对象数组的问?/title><link>http://www.aygfsteel.com/haoqingshi/articles/16750.html</link><dc:creator>Java&Inter</dc:creator><author>Java&Inter</author><pubDate>Tue, 25 Oct 2005 06:12:00 GMT</pubDate><guid>http://www.aygfsteel.com/haoqingshi/articles/16750.html</guid><description><![CDATA[昨天在写一个程序的时候,需要用到对象数l,假设现在有对?class Test<BR>在用对于对象数l之前,必须要初始化Q因为在未初始化之前Q数l中的所有对象都只是一个引?BR>Q在heap中不存在?BR> (tng) (tng) (tng) (tng)<BR> (tng) (tng) (tng) Test test[]=new Test[10];<BR> (tng) (tng) (tng) for( int i=0;i<test.length;i++){<BR> (tng) (tng) (tng) (tng) (tng) (tng) (tng) (tng) test[i]=new test();<BR> (tng) (tng) (tng) }<img src ="http://www.aygfsteel.com/haoqingshi/aggbug/16750.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/haoqingshi/" target="_blank">Java&Inter</a> 2005-10-25 14:12 <a href="http://www.aygfsteel.com/haoqingshi/articles/16750.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java调用外部应用E序http://www.aygfsteel.com/haoqingshi/articles/16560.htmlJava&InterJava&InterMon, 24 Oct 2005 05:38:00 GMThttp://www.aygfsteel.com/haoqingshi/articles/16560.htmlhttp://www.aygfsteel.com/haoqingshi/comments/16560.htmlhttp://www.aygfsteel.com/haoqingshi/articles/16560.html#Feedback0http://www.aygfsteel.com/haoqingshi/comments/commentRss/16560.htmlhttp://www.aygfsteel.com/haoqingshi/services/trackbacks/16560.html调用外部应用E序(譬如VB,有应用程序窗口的情况)

import java.io.*;
public class execOP {

 public execOP(){
  //TODO
 }
 
 /**
  * 埯外部的程?參數為數i?.q回E序的?不具有入的功能)
  * @param appParam   E序?qing)參數組成的數?每個參數為一個數i成?
  * @return
  * @throws Exception
  */
 public String execExternalApp(String []appParam) throws Exception{
  String str="";
  
  Process proc=Runtime.getRuntime().exec(appParam);
  
  DataInputStream in = new DataInputStream(proc.getInputStream());
  DataInputStream error = new DataInputStream(proc.getErrorStream());
  
  try
  {
   String tmp="";
   while ((tmp= in.readLine()) != null) {
    str+="控制台?"+tmp+"\n";      
    //System.out.println("控制??"+tmp);  
    }
   while ((tmp= error.readLine()) != null) {     
    str+="錯誤輸出:"+tmp+"\n";             
    //System.out.println("????"+tmp);
   }
  }
  catch(Exception e)
  {
    System.out.println("獲取應用E序輸出時發生IO錯誤"+e.getMessage());
  }
  return str;
 }
 
 /**
  * 埯外部的程?參數為字W串).q回E序的?不具有入的功能)
  * @param appParam  E序?qing)參數組成的數?每個參數為一個數i成?
  * @return
  * @throws Exception
  */
 public String execExternalApp(String appParam) throws Exception{
  String str="";
  
  Process proc = Runtime.getRuntime().exec(appParam);
  DataInputStream in = new DataInputStream(proc.getInputStream());
  DataInputStream error = new DataInputStream(proc.getErrorStream());
  
  try{
   String tmp="";
   while ((tmp= in.readLine()) != null) {  
    str+="I隻台?"+tmp+"\n";            
    //System.out.println("控制??"+tmp);
   }
   while ((tmp= error.readLine()) != null) {         
    str+="錯誤輸出:"+tmp+"\n";               
    //System.out.println("????"+tmp);  
   }
  }
  catch(Exception e){
    System.out.println("獲取應用E序輸出時發生IO錯誤:"+e.getMessage());
  }
  return str;
 }
 
 /**
  * 測試E序
  * @param args
  */
 public static void main(String[] args) {
  execOP exec=new execOP();
  
  String appcmd="\\\\IP\\c$\\Program Files\\WIPTracking\\XraySystem.exe";
  //String appcmd=args[0];
  try{
    System.out.println(exec.execExternalApp(appcmd));
  }
  catch(Exception e){
   
  }

 }

}



Java&Inter 2005-10-24 13:38 发表评论
]]>
վ֩ģ壺 º| | | | | | | | | ˫| ɽ| | | | ͬ| | ͷ| | | ʡ| ˮ| ɶ| | | ī| ˺| | ߺ| | | غ| | ݶ| | Ϊ| ¡| | | | | |