Haaste: Selaushistorian Toteuttaminen
Tehtävä
Edellisessä luvussa toteutit järjestelmän, jossa oli kaksi painiketta, eteenpäin ja taaksepäin, käyttäen vanhentunutta Stack-tietorakennetta, jonka käyttöä ei suositella nykyaikaisessa Java-kehityksessä.
Tässä luvussa tehtävänäsi on palata mieleen aiemmin käyttämäsi logiikka BrowserHistory-luokan toteuttamiseksi ja toteuttaa se käyttäen Deque-tietorakennetta.
Yritä olla katsomatta edelliseen lukuun ja suorita tämä tehtävä itsenäisesti—niin sanotusti "kirjoita koodi uudelleen". Tämä on myös erinomaista harjoitusta GitHubin kanssa, josta on sinulle hyötyä.
Rajapinta, jossa on kaikki metodit, on luotu GitHubissa olevan koodin kautta alla olevan linkin kautta. Tehtävänäsi on luoda luokan toteutus ja toteuttaa tämä rajapinta ylikirjoittamalla kaikki sen metodit.
Kun olet valmis, aja testit, jotka olen kirjoittanut sinulle; ne tarkistavat ratkaisusi automaattisesti.
Voit myös suorittaa välitestauksia main-luokassa. Luotan yleisesti rehellisyyteesi ja itsenäisyyteesi. Todellisen ohjelmoijan tulee pystyä ymmärtämään koodia itsenäisesti!
- Aloita luomalla kolme attribuuttia tähän luokkaan:
backStack,forwardStackjacurrentUrl. - Seuraavaksi käytä automaattista generaattoria tämän luokan konstruktorin luomiseen.
- Käytä implements-avainsanaa ja ylikirjoita kaikki
BrowserHistory-rajapinnan metodit. - Käytä metodeissa aiemmin oppimiasi
Deque- taiStack-menetelmiä. Muista, ettäDequeon nykyaikainen ja parempi korvaajaStack-tietorakenteelle.
package codefinity.Task;
import java.util.Deque;
public class BrowserHistoryImpl implements BrowserHistory {
private Deque<String> backStack;
private Deque<String> forwardStack;
private String currentUrl;
public BrowserHistoryImpl(Deque<String> backStack, Deque<String> forwardStack, String currentUrl) {
this.backStack = backStack;
this.forwardStack = forwardStack;
this.currentUrl = currentUrl;
}
@Override
public void visitPage(String url) {
backStack.push(currentUrl);
forwardStack.clear();
currentUrl = url;
}
@Override
public void goBack() {
if (!backStack.isEmpty()) {
forwardStack.push(currentUrl);
currentUrl = backStack.pop();
} else {
System.out.println("Cannot go back. Already at the beginning.");
}
}
@Override
public void goForward() {
if (!forwardStack.isEmpty()) {
backStack.push(currentUrl);
currentUrl = forwardStack.pop();
} else {
System.out.println("Cannot go forward. Already at the latest page.");
}
}
@Override
public String getCurrentPage() {
return currentUrl;
}
}
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mahtavaa!
Completion arvosana parantunut arvoon 4
Haaste: Selaushistorian Toteuttaminen
Pyyhkäise näyttääksesi valikon
Tehtävä
Edellisessä luvussa toteutit järjestelmän, jossa oli kaksi painiketta, eteenpäin ja taaksepäin, käyttäen vanhentunutta Stack-tietorakennetta, jonka käyttöä ei suositella nykyaikaisessa Java-kehityksessä.
Tässä luvussa tehtävänäsi on palata mieleen aiemmin käyttämäsi logiikka BrowserHistory-luokan toteuttamiseksi ja toteuttaa se käyttäen Deque-tietorakennetta.
Yritä olla katsomatta edelliseen lukuun ja suorita tämä tehtävä itsenäisesti—niin sanotusti "kirjoita koodi uudelleen". Tämä on myös erinomaista harjoitusta GitHubin kanssa, josta on sinulle hyötyä.
Rajapinta, jossa on kaikki metodit, on luotu GitHubissa olevan koodin kautta alla olevan linkin kautta. Tehtävänäsi on luoda luokan toteutus ja toteuttaa tämä rajapinta ylikirjoittamalla kaikki sen metodit.
Kun olet valmis, aja testit, jotka olen kirjoittanut sinulle; ne tarkistavat ratkaisusi automaattisesti.
Voit myös suorittaa välitestauksia main-luokassa. Luotan yleisesti rehellisyyteesi ja itsenäisyyteesi. Todellisen ohjelmoijan tulee pystyä ymmärtämään koodia itsenäisesti!
- Aloita luomalla kolme attribuuttia tähän luokkaan:
backStack,forwardStackjacurrentUrl. - Seuraavaksi käytä automaattista generaattoria tämän luokan konstruktorin luomiseen.
- Käytä implements-avainsanaa ja ylikirjoita kaikki
BrowserHistory-rajapinnan metodit. - Käytä metodeissa aiemmin oppimiasi
Deque- taiStack-menetelmiä. Muista, ettäDequeon nykyaikainen ja parempi korvaajaStack-tietorakenteelle.
package codefinity.Task;
import java.util.Deque;
public class BrowserHistoryImpl implements BrowserHistory {
private Deque<String> backStack;
private Deque<String> forwardStack;
private String currentUrl;
public BrowserHistoryImpl(Deque<String> backStack, Deque<String> forwardStack, String currentUrl) {
this.backStack = backStack;
this.forwardStack = forwardStack;
this.currentUrl = currentUrl;
}
@Override
public void visitPage(String url) {
backStack.push(currentUrl);
forwardStack.clear();
currentUrl = url;
}
@Override
public void goBack() {
if (!backStack.isEmpty()) {
forwardStack.push(currentUrl);
currentUrl = backStack.pop();
} else {
System.out.println("Cannot go back. Already at the beginning.");
}
}
@Override
public void goForward() {
if (!forwardStack.isEmpty()) {
backStack.push(currentUrl);
currentUrl = forwardStack.pop();
} else {
System.out.println("Cannot go forward. Already at the latest page.");
}
}
@Override
public String getCurrentPage() {
return currentUrl;
}
}
Kiitos palautteestasi!