Tôi có một danh mục đầu tư cũng có danh sách liên kết của lớp Đầu tư (ví dụ: Google là một trường hợp đầu tư). danh sách) với dữ liệu cho mỗi giao dịch.Java - trả về một tham chiếu đến một địa điểm cụ thể trong danh sách liên kết với trình vòng lặp danh sách
Khi người dùng muốn thực hiện giao dịch (mua cổ phiếu google cho 5K), tôi cần tìm xem đầu tư (trong google) đã tồn tại trong investmentList chưa. Nếu nó không - thêm đầu tư mới (và thêm giao dịch cho lịch sử thương mại của nó), Nếu có - chỉ cần thêm một liên kết khác vào danh sách liên kết tradeHistory của google.
Sự cố - Tôi cần phương thức findInvestment để trả lại tham chiếu đến google (ví dụ đầu tư) từ portfolioList để tôi có thể cập nhật lịch sử giao dịch của mình. Phương thức trả về listIterator thay vì tham chiếu đến vị trí trong portfolioList (nên đầu tư Lớp học). Tôi nên sửa findInvestment như thế nào? (Found = ITER là sai)
public class Portfolio {
private LinkedList<Investment> investmentsList;
public Portfolio() {
investmentsList = new LinkedList<Investment>();
}
public void addInvestment(String symbol, double money){
Investment invest = findInvestment(symbol);
if (invest == null) {
System.out.println("symbol does not exist");
getInvestmentsList().add(new Investment(symbol,money));
System.out.println("New invetment has been added to your portfolio - " +symbol);
} else {
invest.addTrade(symbol,money);
System.out.println("A new trade has been added to the current investment - " + symbol);
}
}
public Investment findInvestment(String symbol){
Investment found = null;
ListIterator<Investment> iter = investmentsList.listIterator();
while (iter.hasNext()) {
if (iter.next().getSymbol().equals(symbol)) {
found = iter;
return found;
System.out.println("Found the symbol");
}
}
return found;
}
Là giải pháp thay thế, bạn có thể sử dụng LinkedHashMap thay vì danh sách và sử dụng ký hiệu là "khóa", sau đó bạn sẽ không thực sự cần phải viết phương thức findInvenstment. .contains(), và .get() sẽ cung cấp cho bạn những gì bạn cần. – slambeth
Vâng, đó là một lựa chọn tốt, cảm ơn. – Niminim