Dobry Wieczór
Potrzebuję sortować tablicę "array" w metodzie getArray() ale tak aby nie zmieniać w niej nic. W kodzie który napisałem po pierwszym sortowaniu wyniki zapisują się i nie można uzyskać wtedy pierwotnej tablicy.
public class Books implements Serializable
{
private int methodSort;
private Node[] array =
{
new Node("Adam", "sliwka"), new Node("Jakub", "małpa"), new Node("Marek", "banan"), new Node("Arkadiusz", "bocian")
};
public Node[] getArray()
{
Node[] p = array;
switch (methodSort)
{
case 1:
Arrays.sort(p);
break;
case 2:
Arrays.sort(p);
break;
default:
break;
}
return array;
}
public void setArray(Node[] array)
{
this.array = array;
}
public int getMethodSort()
{
return methodSort;
}
public void setMethodSort(int methodSort)
{
this.methodSort = methodSort;
}
public class Node implements Comparable<Node>
{
private String author;
private String title;
public Node(String author, String title)
{
this.author = author;
this.title = title;
}
public String getAuthor()
{
return author;
}
public void setAuthor(String author)
{
this.author = author;
}
public String getTitle()
{
return title;
}
public void setTitle(String title)
{
this.title = title;
}
@Override
public int compareTo(Node n)
{
return author.compareTo(n.author);
}
}
}
Dla tablicy o dużym rozmiarze lepiej trzymać posortowane dane w pamięci jeśli często wywołuję metodę getArray()?
Proszę o pomoc, z góry dziękuję.