带有RMI的Java客户端服务器

时间:2019-10-31 18:12:05

标签: java server client

编写一个应用RMI的Java客户端-服务器程序。客户端程序生成两个类型为Integer类的数组。客户端在远程对象中调用服务器端的方法。服务器将这两个数组放入一个数组,对该数组进行排序,然后将排序后的数组返回给客户端。客户端在控制台上显示排序后的数组。使用以下界面。请勿更改。

import java.util.ArrayList;
import java.rmi.*;

public interface MergeInterface extends Remote {
  public ArrayList mergeAndSort(ArrayList a, ArrayList b)  throws RemoteException; 
}

以下顺序程序将两个数组放在一起,对数组进行排序并显示:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Random;

public class Main {
  public static void main(String[] args) {
    ArrayList<Integer> a = new ArrayList<Integer>();
    ArrayList<Integer> b = new ArrayList<Integer>();
    Random r = new Random();
    int m = r.nextInt(900) + 100;
    for (int i = 0; i < m; i++) {
        a.add(r.nextInt(500) + 10);
    }
    int n = r.nextInt(900) + 100;
    for (int i = 0; i < n; i++) {
        b.add(r.nextInt(500) + 10);
    }
    a.addAll(b);
    Collections.sort(a);
    for (Integer i : a) {
        System.out.println(i);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

这是在类上实现接口的方法。我还将考虑为此创建一个通用类或强烈键入ArrayList,但这需要更改接口。

public interface MergeInterface extends Remote {
    public ArrayList mergeAndSort(ArrayList a, ArrayList b) throws RemoteException;
}

public static void main(String[] args) {
    ArrayList a = new ArrayList();
    ArrayList b = new ArrayList();
    Random r = new Random();
    int m = r.nextInt(900) + 100;
    for (int i = 0; i < m; i++) {
        a.add(r.nextInt(500) + 10);
    }
    int n = r.nextInt(900) + 100;
    for (int i = 0; i < n; i++) {
        b.add(r.nextInt(500) + 10);
    }

    for (Integer i : (ArrayList<Integer>)new MergeImpl().mergeAndSort(a, b)) {
        System.out.println(i);
    }
}

public static class MergeImpl implements MergeInterface {

    @Override
    public ArrayList mergeAndSort(ArrayList a,
                                  ArrayList b) {
        ArrayList merged = new ArrayList();
        merged.addAll(a);
        merged.addAll(b);
        Collections.sort(merged);
        return merged;
    }
}