Заказ массива с хеш-значениямиJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Заказ массива с хеш-значениями

Сообщение Anonymous »

Я прочитал данные из файла, взял каждую строку из файла, а затем вставил их в массив. Мне нужно преобразовать эти строки в байты и записать их в хэш-файл на диске.

Я хочу взять каждую строку с одинаковым значением хеш-функции и записать ее в один и тот же сектор на моем диске. До сих пор я упорядочивал их на основе их хеш-значения, что не очень хорошо работало в конце массива, поскольку в нем 1000 элементов, а наибольшее хеш-значение, возвращаемое моей функцией, равно 249.

Линейное зондирование привело к тому, что многие строки оказались не на своем месте, поэтому использование этого массива для записи в мои сектора не будет работать очень хорошо. Как мне это сделать?

Вот мой код того, что я сделал до сих пор, если я не совсем ясно выразился:

private void importFile(String dataFile) {
String line = null;
theDisk.clearDisk();

try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(dataFile));

// List to hold the lines
List list = new ArrayList();

while((line = bufferedReader.readLine()) != null){
list.add(line);
}

String[] strArray = list.toArray(new String[0]);
String[] orderedArray = new String[strArray.length];

for(int i = 0; i < strArray.length; i++) {
String current = strArray;
// Use email as key
String key = current.substring(0,current.indexOf(','));
int index = hashFunc3(key);

if(orderedArray[index] == null) {
orderedArray[index] = current;
} else {
while(orderedArray[index] != null) {
index = index+1;
}
orderedArray[index] = current;
}
}

// Always close files.
bufferedReader.close();
}

catch(FileNotFoundException ex) {
System.out.println("Unable to open file '" + dataFile + "'");
}

catch(IOException ex) {
System.out.println("Error reading file '" + dataFile + "'");
}
}


Подробнее здесь: https://stackoverflow.com/questions/399 ... ash-values
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»