Удалить комбинацию дубликатов из списка - PullRequest
0 голосов
/ 29 апреля 2020

Члены List<String> следующим образом

U1,U2
U2,U1
U3,U2
U2,U3
U3,U4

Выходные данные должны быть

U1,U2
U2,U3
U3,U4

Пробный код

import java.util.*;

public class Main {

    static List<String> opList = new ArrayList<String>();
    static List<String> FinalopList = new ArrayList<String>();

    static List<String> processStrings(List<String> friends) {

        for (int i = 0; i < friends.size(); i++) {
            StringBuilder newInp = new StringBuilder();
            boolean statusOpp = false;
            boolean statusSimilar = false;
            String inp = opList.get(i);

            String[] splitFriends = inp.split(",");
            newInp.append(splitFriends[1]).append(",").append(splitFriends[0]).toString();
            System.out.println("newInp:" + newInp);

            for (int j = 0; j < friends.size(); j++) {

                if (friends.get(j).contains(newInp.toString())) {

                    statusOpp = true;

                }

                else if (friends.get(j).contains(inp)) {

                    statusSimilar = true;

                }

            }

            if (statusOpp) {

                FinalopList.add(inp.toString());
                System.out.println(inp.toString());

            }

            else {

                FinalopList.add(inp.toString());
                System.out.println(inp.toString());

            }

        }

        return FinalopList;
    }

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.println("Enter Number of Friends Combinations separated by comma");
        int inp = sc.nextInt();

        for (int i = 0; i < inp; i++) {

            opList.add(sc.next());

        }

        processStrings(opList);

    }

}

Застрял в значениях get Unique.

Пожалуйста, предложите

1 Ответ

0 голосов
/ 29 апреля 2020

Вы можете проверить, содержит ли новый список какую-либо комбинацию элементов, и добавить его в список в противном случае.

static List<String> opList = new ArrayList<String>();
static List<String> finalopList = new ArrayList<String>();

static List<String> processStrings(List<String> friends) {

     for (int i = 0; i < friends.size(); i++) {
         StringBuilder newInp = new StringBuilder();
         String inp = opList.get(i);

         String[] splitFriends = inp.split(",");
         String newInpStr = newInp.append(splitFriends[1]).append(",").append(splitFriends[0]).toString();
         if(!finalopList.contains(inp) && !finalopList.contains(newInpStr)) {
             finalopList.add(inp);
         }
     }

    System.out.println(finalopList);
    return finalopList;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...