Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStreamReader;
- public class AL6_3 {
- private Surname[] surnames;
- private Surname[] table;
- private final Surname del = new Surname(0,"DEL");
- public AL6_3(String path) throws IOException {
- this.surnames = readFile(path);
- }
- public Surname[] getSurnames() {
- return surnames;
- }
- public Surname[] readFile(String path) throws IOException {
- FileInputStream fileInputStream = new FileInputStream(path);
- BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
- Surname[] result;
- String currentLine;
- int arraySize = 0;
- while((currentLine = bufferedReader.readLine()) != null){
- arraySize++;
- }
- result = new Surname[arraySize];
- fileInputStream.getChannel().position(0);
- bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
- for(int i=0; i<arraySize; i++){
- currentLine = bufferedReader.readLine();
- Surname item = new Surname(Integer.parseInt(currentLine.split(" ")[0]),currentLine.split(" ")[1]);
- result[i] = item;
- }
- return result;
- }
- public void hashInsert(Surname surname){
- int i = 0;
- int j;
- do {
- j=hash(Utilities.wordToLong(surnames[i].getSurname(),111), table.length,i);
- if(table[j]==null || table[j].getSurname().equals("DEL")){
- table[j] = surname;
- return;
- }
- i++;
- }while(i< table.length);
- System.out.println("Błąd - brak miejsca w tablicy");
- }
- //adresowanie otwarte liniowe
- //key - wyraz przekonwertowany na longa
- //attempt - kolejna próba haszowania, w przypadku gdy poprzednia dała zajęty indeks w tablicy
- public int hash(long key, int tabLength, int attempt){
- long result = (key % tabLength +attempt)%tabLength;
- return (int)result;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement