Я работаю над проектом, в котором мне нужно прочитать целые числа с плавающей точкой из файла и отсортировать их по подмножествам. Подмножества должны быть отсортированы по их расстоянию друг от друга. Мне нужно сначала вытащить первый элемент из файла и использовать его в качестве сравнения расстояний d. Затем возьмите следующий элемент a и поместите его в отдельный список для сравнения, затем прочитайте третий элемент b и сравните его с a. b должен быть как минимум на расстоянии d от a, в таком случае он будет помещен в подмножество с помощью a. Тогда b будет равно a, и вы будете двигаться вниз до конца и сделаете их набором, тогда вы начнете сначала и сделаете это снова, пока не останется больше элементов.
Я пытаюсь сделать это, используя списки массивов, все, что у меня пока есть, - это чтение файла и помещение его в список массивов, а затем сортировка. Мне нужна помощь в извлечении первого элемента и последующем сравнении.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;
public class FloatFromFile
{
public static void main(String[] args)
{
Scanner file = null;
ArrayList<Float> list = new ArrayList<Float>();
try
{
file = new Scanner(new File("test.txt"));
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
while(file.hasNext())
{
if (file.hasNextFloat()) list.add(file.nextFloat());
else file.next();
}
// display unsorted list
System.err.print("Origional List is:\n");
for (Float i: list) System.out.println(i);
Collections.sort(list);
// display sorted list
System.err.print("Sorted List is:\n");
for (Float i: list) System.out.println(i);
ArrayList<Float> sorted = new ArrayList<Float>();
while (file.hasNext())
{
Float val = file.nextFloat();
int i = sorted.size();
float temp = sorted.get(i-1);
while (i > 0 && temp > val)
{
i--;
temp = sorted.get(i-1);
}
sorted.insert(i, val);
}
for (Float i: sorted) System.out.println(i);
}
}
Я добавил новый метод, но у меня все еще возникают проблемы с его работой
Я получаю ошибки
FloatFromFile.java: 50: ошибка: не удается найти символ
sorted.insert (я, вал);
^
символ: метод вставки (int, Float)
расположение: переменная отсортирована по типу ArrayList
1 ошибка