关于java链式调度代码封装的信息

如何应用Java的链式方法调用

StringBuffer就可以简单的描述该方法使用方式!

创新互联是一家专注于网站建设、成都网站制作与策划设计,任县网站建设哪家好?创新互联做网站,专注于网站建设十载,网设计领域的专业建站公司;建站业务涵盖:任县等地区。任县做网站价格咨询:028-86922220

写个小例子吧,看一眼就明白怎么回事了!

因为StringBuffer的append这个方法每调用一次,返回依然还是StringBuffer这个容器本身对象,所以可以继续调用!当然有的类的方法也可以这么调用!

这只是一个小案例,用来解释是怎么回事,链式用的地方太多了!

java如何实现链式编程

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(); //类似于这样的

}

java代码,多机调度问题,怎么解释

多机调度问题的Java实现(贪心算法)

具体问题描述以及C/C++实现参见网址

[java] view plain copy print?

import java.util.ArrayList;  

import java.util.Collections;  

import java.util.LinkedList;  

import java.util.List;  

/** 

* 多机调度问题--贪心算法 

* @author Lican 

*/  

public class JobMachine {  

public static class JobNode implements Comparable{  

int id;//作业的标号  

int time;//作业时间  

public JobNode(int id,int time){  

this.id=id;  

this.time=time;  

}  

@Override  

public int compareTo(Object x) {//按时间从大到小排列  

int times=((JobNode)x).time;  

if(timetimes) return -1;  

if(time==times) return 0;  

return 1;  

}         

}  

public static class MachineNode implements Comparable{  

int id;//机器的标号  

int avail;//机器空闲的时间(即机器做完某一项工作的时间)  

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的下标从1开始,所以n(作业的数目)=a.length-1  

int sum=0;  

if(n=m){  

for(int i=0;in;i++)  

sum+=a[i+1];  

System.out.println("为每个作业分别分配一台机器");  

return sum;  

}  

ListJobNode d=new ArrayListJobNode();//d保存所有的作业  

for(int i=0;in;i++){//将所有的作业存入List中,每一项包含标号和时间  

JobNode jb=new JobNode(i+1,a[i+1]);  

d.add(jb);  

}  

Collections.sort(d);//对作业的List进行排序  

LinkedListMachineNode h=new LinkedListMachineNode();//h保存所有的机器  

for(int i=1;i=m;i++){//将所有的机器存入LinkedList中  

MachineNode x=new MachineNode(i,0);//初始时,每台机器的空闲时间(完成上一个作业的时间)都为0  

h.add(x);  

}  

int test=h.size();  

for(int i=0;in;i++){  

Collections.sort(h);  

MachineNode x=h.peek();  

System.out.println("将机器"+x.id+"从"+x.avail+"到"+(x.avail+d.get(i).time)+"的时间段分配给作业"+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("总时间为:"+sum);  

}  

}  

/** 

运行结果: 

将机器1从0到16的时间段分配给作业4 

将机器2从0到14的时间段分配给作业2 

将机器3从0到6的时间段分配给作业5 

将机器3从6到11的时间段分配给作业6 

将机器3从11到15的时间段分配给作业3 

将机器2从14到17的时间段分配给作业7 

将机器3从15到17的时间段分配给作业1 

总时间为:17 

*/


标题名称:关于java链式调度代码封装的信息
文章转载:http://cdiso.cn/article/hdjchd.html

其他资讯