StringBuffer就可以簡(jiǎn)單的描述該方法使用方式!
創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、成都網(wǎng)站制作與策劃設(shè)計(jì),任縣網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:任縣等地區(qū)。任縣做網(wǎng)站價(jià)格咨詢:028-86922220
寫個(gè)小例子吧,看一眼就明白怎么回事了!
因?yàn)镾tringBuffer的append這個(gè)方法每調(diào)用一次,返回依然還是StringBuffer這個(gè)容器本身對(duì)象,所以可以繼續(xù)調(diào)用!當(dāng)然有的類的方法也可以這么調(diào)用!
這只是一個(gè)小案例,用來(lái)解釋是怎么回事,鏈?zhǔn)接玫牡胤教嗔?
class A{
public B getB(){
return new B();
}
}
class B{
public a getA(){
return new A();
}
}
public static void main(String args[]){
B b = new A().getB().getA().getB(); //類似于這樣的
}
多機(jī)調(diào)度問(wèn)題的Java實(shí)現(xiàn)(貪心算法)
具體問(wèn)題描述以及C/C++實(shí)現(xiàn)參見(jiàn)網(wǎng)址
[java]?view?plain?copy?print?
import?java.util.ArrayList;??
import?java.util.Collections;??
import?java.util.LinkedList;??
import?java.util.List;??
/**?
*?多機(jī)調(diào)度問(wèn)題--貪心算法?
*?@author?Lican?
*?
*/??
public?class?JobMachine?{??
public?static?class?JobNode?implements?Comparable{??
int?id;//作業(yè)的標(biāo)號(hào)??
int?time;//作業(yè)時(shí)間??
public?JobNode(int?id,int?time){??
this.id=id;??
this.time=time;??
}??
@Override??
public?int?compareTo(Object?x)?{//按時(shí)間從大到小排列??
int?times=((JobNode)x).time;??
if(timetimes)?return?-1;??
if(time==times)?return?0;??
return?1;??
}?????????
}??
public?static?class?MachineNode?implements?Comparable{??
int?id;//機(jī)器的標(biāo)號(hào)??
int?avail;//機(jī)器空閑的時(shí)間(即機(jī)器做完某一項(xiàng)工作的時(shí)間)??
public?MachineNode(int?id,int?avail){??
this.id=id;??
this.avail=avail;??
}??
@Override??
public?int?compareTo(Object?o)?{//升序排序,LinkedList的first為最小的??
int?xs=((MachineNode)o).avail;??
if(availxs)?return?-1;??
if(avail==xs)?return?0;??
return?1;??
}??
}??
public?static?int?greedy(int[]?a?,int?m){??
int?n=a.length-1;//a的下標(biāo)從1開(kāi)始,所以n(作業(yè)的數(shù)目)=a.length-1??
int?sum=0;??
if(n=m){??
for(int?i=0;in;i++)??
sum+=a[i+1];??
System.out.println("為每個(gè)作業(yè)分別分配一臺(tái)機(jī)器");??
return?sum;??
}??
ListJobNode?d=new?ArrayListJobNode();//d保存所有的作業(yè)??
for(int?i=0;in;i++){//將所有的作業(yè)存入List中,每一項(xiàng)包含標(biāo)號(hào)和時(shí)間??
JobNode?jb=new?JobNode(i+1,a[i+1]);??
d.add(jb);??
}??
Collections.sort(d);//對(duì)作業(yè)的List進(jìn)行排序??
LinkedListMachineNode?h=new?LinkedListMachineNode();//h保存所有的機(jī)器??
for(int?i=1;i=m;i++){//將所有的機(jī)器存入LinkedList中??
MachineNode?x=new?MachineNode(i,0);//初始時(shí),每臺(tái)機(jī)器的空閑時(shí)間(完成上一個(gè)作業(yè)的時(shí)間)都為0??
h.add(x);??
}??
int?test=h.size();??
for(int?i=0;in;i++){??
Collections.sort(h);??
MachineNode?x=h.peek();??
System.out.println("將機(jī)器"+x.id+"從"+x.avail+"到"+(x.avail+d.get(i).time)+"的時(shí)間段分配給作業(yè)"+d.get(i).id);??
x.avail+=d.get(i).time;??
sum=x.avail;??
}??
return?sum;??
}??
public?static?void?main(String[]?args)?{??
int[]?a={0,2,14,4,16,6,5,3};??
int?m=3;??
int?sum=greedy(a,m);??
System.out.println("總時(shí)間為:"+sum);??
}??
}??
/**?
運(yùn)行結(jié)果:?
將機(jī)器1從0到16的時(shí)間段分配給作業(yè)4?
將機(jī)器2從0到14的時(shí)間段分配給作業(yè)2?
將機(jī)器3從0到6的時(shí)間段分配給作業(yè)5?
將機(jī)器3從6到11的時(shí)間段分配給作業(yè)6?
將機(jī)器3從11到15的時(shí)間段分配給作業(yè)3?
將機(jī)器2從14到17的時(shí)間段分配給作業(yè)7?
將機(jī)器3從15到17的時(shí)間段分配給作業(yè)1?
總時(shí)間為:17?
*/