Skip to content

Commit

Permalink
Change into lambda/streams
Browse files Browse the repository at this point in the history
  • Loading branch information
elisab3 committed May 24, 2026
1 parent 770fbe8 commit 6d85031
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 42 deletions.
42 changes: 13 additions & 29 deletions src/main/java/Controller/StockFileHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,43 +11,27 @@ public class StockFileHandler {

// lesing
public List<Stock> loadStocksFromFile(String filename) throws IOException {
List<Stock> stocks = new ArrayList<>();
List<String> lines = Files.readAllLines(Paths.get(filename));

for (String line : lines) {
line = line.trim();
if (line.isEmpty() || line.startsWith("#")) {
continue;
}

String[] parts = line.split(",");
if (parts.length == 3) {
String symbol = parts[0];
String name = parts[1];
BigDecimal price = new BigDecimal(parts[2]);

stocks.add(new Stock(symbol, name, price));
}
}
return stocks; // returnerer listen
return Files.readAllLines(Paths.get(filename)).stream()
.map(String::trim)
.filter(line -> !line.isEmpty() && !line.startsWith("#"))
.map(line -> line.split(","))
.filter(parts -> parts.length == 3)
.map(parts -> new Stock(parts[0], parts[1], new BigDecimal(parts[2])))
.toList();
}

// lagring
public void saveStocksToFile(String filename, List<Stock> stocks) throws IOException {
List<String> lines = new ArrayList<>();

// header
lines.add("# Ticker,Name,Price");

for (Stock stock : stocks) {
// formaterer hver aksje som "SYMBOL,NAME,PRICE"
String line = String.format("%s,%s,%s",

lines.addAll(stocks.stream()
.map(stock -> String.format("%s,%s,%s",
stock.getSymbol(),
stock.getCompany(),
stock.getSalesPrice().toString());
lines.add(line);
}

stock.getSalesPrice().toString()))
.toList());

Files.write(Paths.get(filename), lines);
}
}
19 changes: 6 additions & 13 deletions src/main/java/Model/Portfolio.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,9 @@ public List<Share> getShares(String symbol) {
if (symbol == null || symbol.isBlank()) {
throw new IllegalArgumentException("Symbol cannot be null or blank");
}
List<Share> result = new ArrayList<>();
for (Share share : shares) {
if (share.getStock().getSymbol().equals(symbol)) {
result.add(share);
}
}
return result;
return shares.stream()
.filter(share -> share.getStock().getSymbol().equals(symbol))
.toList();
}

public boolean contains(Share share) {
Expand All @@ -50,12 +46,9 @@ public boolean contains(Share share) {
}

public BigDecimal getNetWorth() {
BigDecimal total = BigDecimal.ZERO;
for (Share share : shares) {
SaleCalculator calc = new SaleCalculator(share);
total = total.add(calc.calculateTotal());
}
return total;
return shares.stream()
.map(share -> new SaleCalculator(share).calculateTotal())
.reduce(BigDecimal.ZERO, BigDecimal::add);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Control
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Exchange.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\ExchangeObserver.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Player.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\PlayerStatus.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Portfolio.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Purchase.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\PurchaseCalculator.java
Expand All @@ -12,6 +13,7 @@ C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\S
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\Transaction.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionArchive.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionCalculator.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\Model\TransactionFactory.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\GameSetupScene.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\Launcher.java
C:\Users\elisa\Downloads\progdel1\Programmering2_mappe_v26\src\main\java\View\MainGameScene.java
Expand Down

0 comments on commit 6d85031

Please sign in to comment.