Topic: 关于java编程的一个问题 |
Print this page |
1.关于java编程的一个问题 | Copy to clipboard |
Posted by: jeffwang66 Posted on: 2009-06-18 21:29 我想问一下,如果我想让一组数据按从大到小的顺序顺序存储,请问在java中有没有特定的数据结构或者函数可以实现? |
2.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-19 11:39 如果這組數據是類類型的話﹐用TreeSet import java.util.*; class treesetdemo{ public static void main(String args[]) { TreeSet ts = new TreeSet(); ts.add("c"); ts.add("a"); ts.add("b"); ts.add("e"); ts.add("d"); System.out.println(ts); } } 輸出如下﹕ [a,b,c,d,e] |
3.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-19 14:48 import java.util.*; public class util { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TreeSet ts = new TreeSet(); ts.add("a"); ts.add("d"); ts.add("b"); ts.add("c"); for (int i = ts.size()-1 ; i >=0; i --) { //System.out.println(ts); System.out.println(ts.last()); ts.remove(ts.last()); } } } 輸出﹕ d c b a |
4.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-19 16:08 看了半天書﹐找到從大到小存儲怎么搞了。 用比較函數。 Comparator接口定義二個方法。 compare() equals() int compare(Object obj1,Object ojb2) 對象相等返回0, obj1 > ojb2 返回正值﹐否則返回負值。 可以覆蓋compare()﹐從而改變對象排序的方式。通過創建一個顛 倒比較輸出的比較函數﹐就可以按從大到小了。 class MyComp implements Comparator { public int compare (Object a,Object b) { String aStr,bStr; aStr = (String )a; bStr = (String )b; return bStr.compareTo(aStr); //如果從小到大return aStr.compareTo(bStr); } } class CompDemo{ public static void main(String args[]) { TreeSet ts = new TreeSet(new MyComp()); ts.add("c"); ts.add("a"); ts.add("b"); ts.add("e"); ts.add("d"); Iterator i = ts.iterator(); while(i.hasNext()) { Object element = i.next(); System.out.println(element + ""); } System.out.println(); } } 輸出﹕f e d c b a |
5."关于java编程的一个问题"的問題。 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-22 08:04 書上明明說Comparator接口定義二個方法。 compare()和 equals() class MyComp implements Comparator { public int compare (Object a.Ojbect b) { String aStr,bStr; aStr = (String )a; bStr = (String )b; return bStr.compareTo(aStr); //如果從小到大return aStr.compareTo(bStr); } } 但這個類中只重寫了compare(Object a, Object b) equals()沒有重寫啊﹐在類中引用接口﹐那么在本類中不是都要實現接口中定義的方法嗎? 哪個高手說說? 那只企鵝咋好几天不見了? |
6.Re:"关于java编程的一个问题"的問題。 [Re: skwujinhua] | Copy to clipboard |
Posted by: ivanna Posted on: 2009-06-22 12:00 skwujinhua wrote: 任何一个类 都是 Object类的子类,非特殊情况不需要override Object类的methods,eg. equals(), clone(), wait(), etc.. |
7.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-22 15:16 謝謝﹐差不多懂了﹐只是感覺有點朦朦朧朧.嘿嘿。。。不過知道方向了﹐ 謝謝ivanna. |
8.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: skwujinhua Posted on: 2009-06-22 15:17 還有另一種方法﹐用Arrays,也是重寫compare(Object ,Object) Arrays有個排序的方法. |
9.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: abefirst Posted on: 2009-06-28 10:19 谢谢了啊,一直没有明白呢。謝謝ivanna |
10.Re:关于java编程的一个问题 [Re: jeffwang66] | Copy to clipboard |
Posted by: abefirst Posted on: 2009-06-28 10:21 也感谢skwujinhua 提出那个问题 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |