static void Colletions.sort(List list)
or you can cutomize your sorting rule and use
static void Collections.sort(List l, Comparator c)
or you can cutomize your sorting rule and use
static void Collections.sort(List l, Comparator c)
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);}