如何在linkedList里将对象按照某一属性大小排序???谢谢!! static void Colletions.sort(List list)or you can cutomize your sorting rule and usestatic void Collections.sort(List l, Comparator c) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是这样操作的,我的代码如下:import java.util.*;class MyQueue{private LinkedList queue=new LinkedList();public MyQueue(){}public void put(Object v){ queue.addFirst(v);}public void remove(){ queue.removeLast();}public Object get(int i){ return queue.get(i);}public boolean isEmpty(){ return queue.isEmpty();}public int getSize(){ return queue.size();}public LinkedList getQueue(){ return queue;}public void sort(){ Collections.sort((List)queue); }} class MyProcess implements Comparable{private int priority;private int id;private int cpuTime;private int allTime;private int startBlock;private int blockTime;private boolean state;public MyProcess(int priority,int id,int cpuTime,int allTime,int startBlock,int blockTime,boolean state){ this.priority=priority; this.id=id; this.cpuTime=cpuTime; this.allTime=allTime; this.startBlock=startBlock; this.blockTime=blockTime; this.state=state;}public void setPriority(int priority){ this.priority=priority;}public int getPriority(){ return priority;}public void setID(int id){ this.id=id;}public int getID(){ return id;}public void setCpuTime(int cpuTime){ this.cpuTime=cpuTime;}public int getCpuTime(){ return cpuTime;}public void setAllTime(int allTime){ this.allTime=allTime;}public int getAllTime(){ return allTime;}public void setStartBlock(int startBlock){ this.startBlock=startBlock;}public int getStartBlock(){ return startBlock;}public void setBlockTime(int blockTime){ this.blockTime=blockTime;}public int getBlockTime(){ return blockTime;}public void setState(boolean state){ this.state=state;}public String getState(){ if(state==true){ return "READY";}return "BLOCK";}public String toString(){ return ("ID:"+getID()+"\n"+"PRIORITY:"+getPriority()+"\n"+ "CPUTIME:"+getCpuTime()+"\n"+"ALLTIME:"+getAllTime()+"\n"+ "STARTBLOCK:"+getStartBlock()+"\n"+"BLOCKTIME:"+getBlockTime()+"\n"+ "STATE:"+getState());}public int compareTo(Object v){return 1;}} import java.util.*;public class Schedul{private static MyQueue myQueue=new MyQueue();private static MyProcess process1=new MyProcess(9,4,0,3,2,3,true);private static MyProcess process2=new MyProcess(38,1,0,3,3,2,true);private static MyProcess process3=new MyProcess(23,2,0,4,3,2,true);public void set(){ myQueue.put(process1); myQueue.put(process2); myQueue.put(process3);}public void print(){ for(int i=0;i<myQueue.getSize();i++){ System.out.println((MyProcess)myQueue.get(i)); System.out.println(); }}public static void main(String[] args){Schedul schedul=new Schedul();schedul.set();myQueue.sort();System.out.println("-------------------------初始状态--------------------------------");schedul.print();System.out.println("-----------------------------------------------------------------");}} 我希望linklist里的对象是按照priority属性大小排序的,可是不行!!!请帮我看一小下!!! 你的MyProcess.compareTo设计不合理要重新写public int compareTo(Object o){ MyProcess other = (MyProcess)o; int i = other.getPriority(); return priority>i?1:(priority==i?0:-1);} 定义Comparator,然后放在TreeSet中也行 在jtable的单元格中添加JProgressBar? 这个运行结果是怎么回事?(高手进) 正试着写一个扫雷游戏,请问的类的封装以及思路 请教各路高手算法问题 jsp和php是什么关系呀?查了些资料,可是窗户纸未破. 请教 一个关于URL.openStream()的问题! main都是public static void main?不能返回植吗 看过<大家看这么简单的句子错在那了?>的进来接分! 面向对象的流程图应该如何画呢?急呵,急 复者有分呵 java有处理数据结构:图的类库吗 appletviewer.exe运行的错误,怎样解决???
import java.util.*;class MyQueue{private LinkedList queue=new LinkedList();public MyQueue(){}public void put(Object v){
queue.addFirst(v);
}public void remove(){
queue.removeLast();
}public Object get(int i){
return queue.get(i);
}public boolean isEmpty(){
return queue.isEmpty();
}public int getSize(){
return queue.size();
}public LinkedList getQueue(){
return queue;
}public void sort(){
Collections.sort((List)queue);
}
}
private int id;
private int cpuTime;
private int allTime;
private int startBlock;
private int blockTime;
private boolean state;public MyProcess(int priority,int id,int cpuTime,int allTime,int startBlock,
int blockTime,boolean state){
this.priority=priority;
this.id=id;
this.cpuTime=cpuTime;
this.allTime=allTime;
this.startBlock=startBlock;
this.blockTime=blockTime;
this.state=state;
}public void setPriority(int priority){
this.priority=priority;
}public int getPriority(){
return priority;
}public void setID(int id){
this.id=id;
}public int getID(){
return id;
}public void setCpuTime(int cpuTime){
this.cpuTime=cpuTime;
}public int getCpuTime(){
return cpuTime;
}public void setAllTime(int allTime){
this.allTime=allTime;
}public int getAllTime(){
return allTime;
}public void setStartBlock(int startBlock){
this.startBlock=startBlock;
}public int getStartBlock(){
return startBlock;
}public void setBlockTime(int blockTime){
this.blockTime=blockTime;
}public int getBlockTime(){
return blockTime;
}public void setState(boolean state){
this.state=state;
}public String getState(){
if(state==true){
return "READY";
}
return "BLOCK";
}public String toString(){
return ("ID:"+getID()+"\n"+"PRIORITY:"+getPriority()+"\n"+
"CPUTIME:"+getCpuTime()+"\n"+"ALLTIME:"+getAllTime()+"\n"+
"STARTBLOCK:"+getStartBlock()+"\n"+"BLOCKTIME:"+getBlockTime()+"\n"+
"STATE:"+getState());
}public int compareTo(Object v)
{return 1;}}
private static MyProcess process1=new MyProcess(9,4,0,3,2,3,true);
private static MyProcess process2=new MyProcess(38,1,0,3,3,2,true);
private static MyProcess process3=new MyProcess(23,2,0,4,3,2,true);public void set(){
myQueue.put(process1);
myQueue.put(process2);
myQueue.put(process3);
}public void print(){
for(int i=0;i<myQueue.getSize();i++){
System.out.println((MyProcess)myQueue.get(i));
System.out.println();
}
}
public static void main(String[] args){Schedul schedul=new Schedul();
schedul.set();
myQueue.sort();
System.out.println("-------------------------初始状态--------------------------------");
schedul.print();
System.out.println("-----------------------------------------------------------------");
}
}
要重新写
public int compareTo(Object o){
MyProcess other = (MyProcess)o;
int i = other.getPriority();
return priority>i?1:(priority==i?0:-1);}