Как создать новые массивы с определенными условиями из данных старого массива?

Рейтинг: -1Ответов: 1Опубликовано: 12.06.2023
import java.util.ArrayList;
import java.util.Collections;
import static java.lang.Math.abs;

public class List {
public static void main(String[] args) {

    ArrayList<Double> list = new ArrayList();
    ArrayList<Double> list2 = new ArrayList();
    ArrayList<Double> list_new = new ArrayList();
    ArrayList<Double> list_new_2 = new ArrayList();

    list.add(28749.47);
    list.add(28749.81);
    list.add(28750.04);
    list.add(28750.27);
    list.add(28779.16);
    list.add(28779.5);

    int count=0;
    list2.addAll(list);

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

        for (int j = 0; j < list2.size(); j++) {
            if ((abs(list2.get(i) - list.get(j)) < 2)) {
                count++;
                list_new.add(i, list.get(i));
                break;
            }
            else
                    if ((abs(list2.get(i) - list.get(j)) > 2)) {
                        list_new_2.add(list.get(i));
                    }

            break;

        }
    }
    System.out.println(list);
    System.out.println(list2);
    System.out.println(list_new);
    System.out.println(list_new_2);
    System.out.println(count);

}
}

Количество массивов должно меняться по условию. То есть, при одном условии может получиться 3 массива, при этом они могут быть разного размера, а при другом - другое количество.

Ответы

▲ 0

Вы можете создать лист листов.

ArrayList<ArrayList<Double>> list = new ArrayList<>();

Тогда вам просто надо будет добавлять в конец листа новый список.