webForumDet fria alternativet

Inläggning i array med länkade listor?

6 svar · 201 visningar · startad av Mattias

MattiasMedlem sedan mars 2000205 inlägg
#1

Jag vill lägga in ett objekt i en länkad lista som är kopplad till ett array-fält. Själva inläggningen försöker jag göra genom koden:

lankadLista[index].into(objekt);

Av någon anledning når inte ens satsen into-metoden och frågan är varför? Är det nåt fel på kodsatsen, eller? Jag vet att variabeln index tilldelats ett värde och into-metoden är det inget fel på eftersom jag använt den tidigare för att lägga in objekt i en länkad lista. Arrayen lankad lista är skapad genom en parameterlös konstruktor i samma klass som into-metoden.

PhorpherMedlem sedan feb. 20002 300 inlägg
#2

Lite mer kod skulle inte skada.

Så lankadLista är av typen X där X har en metod into() antar jag?

Är lankadLista public? Var utför du denna koden? Om lankadLista är deklarerad private eller protected och du försöker komma åt den från en annan klass så kommer det ju inte att funka.

Men som sagt. Mer kod! :)

MattiasMedlem sedan mars 2000205 inlägg
#3

Arrayen "lankadLista" är deklarerad:

private MinLista[] lankadLista = new MinLista[100];

Min Lista är i sin tur en public-klass som inte har nån konstruktor (mer än den osynliga parameterlösa som skapas automatiskt). MinLista innehåller bl.a. metoden into:

public void into (Object o) {
System.out.println("inne i into");
	Node newNode = new Node(o, null);
	if (head == null) {
	    head = newNode;
	    last = newNode;
	}
	else {
	 last.setNext(newNode);
	 last = newNode;
	}
}

variabeln "objekt" består av en rad från en textfil. Denna rad är iofs av (den egenhändigt skapade) typen "Artikel", men vad jag förstår spelar inte det nån roll eftersom typen Object som inte-metoden tar emot är superklass till alla klasser. Jag har för övrigt även testat att typa om objekt till Object-typ, utan att få into-satsen att funka.

MattiasMedlem sedan mars 2000205 inlägg
#4

Jag har eventuellt kommit på vad som kan vara felet. Ett svar som kan vara till hjälp är hur man definierar klasser vars objekt är arrayer av arrayer. Detta är säkert väldigt enkelt, men eftersom jag är nybörjare på java har jag dålig koll på hur det funkar.

MattiasMedlem sedan mars 2000205 inlägg
#5

Problemet är löst och berodde på att man måste tilldela referensen i arrayen så att den pekar till varje länkad lista. Detta gjorde jag efter att listan har skapats.

PhorpherMedlem sedan feb. 20002 300 inlägg
#6

Mattias skrev:

Jag har eventuellt kommit på vad som kan vara felet. Ett svar som kan vara till hjälp är hur man definierar klasser vars objekt är arrayer av arrayer. Detta är säkert väldigt enkelt, men eftersom jag är nybörjare på java har jag dålig koll på hur det funkar.

Du menar en matris?

T.ex en array med int-arrayer?

int[][] matris = new int[5][5];

matris är nu en array med fem stycken int-arrayer som vardera innehåller 5 stycken integers.

Kan väl enkelt "illustreras" såhär:

0 -> {1, 2, 3, 4, 5}
1 -> {2, 3, 4, 5, 1}
2 -> {3, 4, 5, 1, 2}
3 -> {4, 5, 1, 2, 3}
4 -> {5, 1, 2, 3, 4}

Nåt som hjälper eller har jag fattat din fråga fel?

PhorpherMedlem sedan feb. 20002 300 inlägg
#7

Mattias skrev:

Problemet är löst och berodde på att man måste tilldela referensen i arrayen så att den pekar till varje länkad lista. Detta gjorde jag efter att listan har skapats.

Ah! Men dåså. Fast jag låter mitt första svar stå kvar i vilket fall. :)

126 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)