Jag har en sökfunktion som fungerar. Nu vill jag använda denna och tabort ett Media ur listan. Hur gör jag???
public class MediaContainer
{
private int SIZE = 10;
private Media[] lista;
private int m_index;
public MediaContainer()
{
lista = new Media[SIZE];
m_index = 0;
}
public boolean addMedia(Media i_Media)
{
if (m_index<SIZE)
lista[m_index++]=i_Media;
else
return false;
return true;
}
public Media[] searchMedia(String i_Media)
{
Media[] temp = new Media[m_index];
int i, count = 0;
for(i = 0; i < m_index; i++)
{
if(lista[i].getTitel().equalsIgnoreCase(i_Media))
temp[count++] = lista[i];
}
Media[] hits = new Media[count];
for(i = 0; i < count; i++)
hits[i] = temp[i];
return hits;
}
public void print()
{
System.out.println("Skriver ut all media");
for(int i=0; i<m_index; i++)
{
System.out.println();
lista[i].print();
System.out.println(i);
}
}
}
sen kommer testprogrammet
import java.io.*;
import java.util.*;
class testMedia
{
//==========================================================================
// Beskrivning: Skriver ut menyvalen
// =========================================================================
public static void printMenu()
{
System.out.println("******** MENY ********");
System.out.println("1. Lagg in ny media");
System.out.println("2. Sök efter Cd/Film");
System.out.println("3. Tabort ett objekt");
System.out.println("4. Skriv ut all Media");
System.out.println("q. AVSLUTA");
System.out.println();
System.out.print("Valj vad du vill gora: ");
System.out.flush();
}
//==========================================================================
// Beskrivning: Frågar efter MediaAttribut och skapar en MEdia utifrån detta
// Returvärde: skapade Medier
// =========================================================================
public static Cd createCd() throws IOException
{
BufferedReader indata = new BufferedReader(new InputStreamReader(System.in));
String m_titel, m_artist, temp;
int m_utgivningsÅr, m_antalLåtar;
float m_längd;
System.out.print("Titel ");
m_titel = indata.readLine();
System.out.print("Artist ");
m_artist = indata.readLine();
System.out.print("Utgivningsår ");
temp = indata.readLine();
m_utgivningsÅr = Integer.parseInt(temp);
System.out.print("Antal låtar ");
temp = indata.readLine();
m_antalLåtar = Integer.parseInt(temp);
System.out.print("Längd ");
temp = indata.readLine();
m_längd = Float.parseFloat(temp);
return new Cd(m_titel, m_artist, m_utgivningsÅr, m_antalLåtar, m_längd);
}
public static void main (String[] args) throws IOException
{
BufferedReader indata = new BufferedReader(new InputStreamReader(System.in));
boolean cont = true;
char choice;
MediaContainer lista = new MediaContainer();
System.out.println("Skapar Cdskivor");
lista.addMedia(new Cd ("Thomas Ledin","Thomas Ledin", 2004, 15, 65.23f));
lista.addMedia(new Cd ("Carolas bästa","Carola", 2003, 18, 75.31f));
lista.addMedia(new Film ("Troja", 76.4f, 1998, "Brad Pitt","Action"));
System.out.println();
do
{
//Menyval
printMenu();
choice = indata.readLine().charAt(0);
System.out.println();
switch(choice)
{
//Om man valde menyval 1, lagg in ny bil
case '1':
Media newCd = createCd();
boolean res = lista.addMedia(newCd);
if (res)
{
System.out.println();
System.out.println("Cd:n skapades");
newCd.print();
lista.print();
}
else
//MediaContainer lista = new MediaContainer(20);
System.out.println("Systemet är fullt");
break;
//Menyval 2. Söker efter Media
case '2':
//Läs in vilken Titel som ska letas efter
System.out.println("Vilken Titel? ");
String Titel = indata.readLine();
//Sök efter Titel
System.out.println();
System.out.println("Soker efter " + Titel + "...");
Media[] result = lista.searchMedia(Titel);
//Presentera resultatet
int noOfHits = result.length;
System.out.println();
for(int i = 0; i < noOfHits; i++)
{
result[i].print();
System.out.println("Antal Träffar " +noOfHits);
System.out.println(i);
}
break;
case '3':
break;
//Menyval 4. Skriver ut all media som är inlagd.
case '4':
lista.print();
break;
//Om man valde att avsluta
case 'q':
System.out.println("Nu stängs programmet av.");
cont = false;
break;
//Används om du gör ett felaktigt val
default:
System.out.println("Prova nagot annat...\n");
}
}
while(cont);
}
}
Det är under case'3' som jag vill ha in en funktion som söker på en titel och sen raderas den första träffen i listan.