lista jednokierunkowa

0

Mam listę jednokierunkową, zaimplementowaną metodę add, wszystko ładnie działa, chce tylko zwrócić pole obiektu tej listy, a nie obiekt. Jak to zrobić?
(dokładniej-lista Studentow, chce dostać się do nazwiska)

0

Może zaimplementuj metodę get()?

0

próbowałam, tylko nie wiem czy w tej metodzie dalej mam używać head?

0

Może podaj kod struktury swojej listy, wtedy będzie łatwiej odpowiedzieć.

0

No w prawidlowej liście jednokierunkowej nie dostaniesz się do konkretnego elementu inaczej niz przez przejście od head w górę.

0

No nie wiem... O to Ci chodziło?

import java.util.*;
import java.lang.*;
import java.io.*;


class MyList<T>{
	private class Node{
		public int No;
		public T Value;
		public Node Next;
		
		public Node(T value){
			this.No = 0;
			this.Value = value;
			this.Next = null;
		}
	}
	
	private int _count;
	private Node _root;
	
	public MyList(){
		this._count = 0;
		this._root = null;
	}
	
	public void Add(T value){
		Node newNode = new Node(value);
		newNode.No = this._count;
		
		if(this._root != null){
			newNode.Next = this._root;
			this._root = newNode;
		}
		else this._root = newNode;
		this._count += 1;
	}
	
	public T GetItem(int No){
		Node temp = this._root;
		while(temp != null){
			if(temp.No == No) return temp.Value;
			temp = temp.Next;
		}
		return null;
	}
}

class Person{
	public String Name;
	public String Surname;
	public Person(String name, String surname){
		this.Name = name;
		this.Surname = surname;
	}
}

class Ideone
{
	public static void main (String[] args) throws java.lang.Exception
	{
		MyList<Person> persons = new MyList<Person>();
		persons.Add(new Person("Tomek", "Tomkowski"));
		persons.Add(new Person("Karolina", "Karolinowska"));
		persons.Add(new Person("Kasia", "Kasiowska"));
		persons.Add(new Person("Maciek", "Maciowski"));
		
		Person selected = persons.GetItem(2);
		System.out.println(selected.Name + " " + selected.Surname);
	}
}

http://ideone.com/ntjrR5

Masz dostęp do publicznych pól Name i Surname znalezionego obiektu.

0

grzesiek51114 dokładnie o to mi chodziło, dziękuję bardzo, wszystko działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1