Клиентский сервер Java с RMI - PullRequest
1 голос
/ 31 октября 2019

Напишите клиент-серверную программу Java, использующую RMI. Клиентская программа генерирует два массива типа 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 голосов
/ 01 ноября 2019

Это как реализовать интерфейс в классе. Я также рассмотрел бы создание универсального класса для этого или строгой типизации ArrayLists, но это требует изменения интерфейса.

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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...