亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

刪除數組。

刪除數組。

HUH函數 2022-05-12 15:05:49
運行一個簡單的拍賣程序,唯一的問題是如果用戶在拍賣結束前被刪除,他/她的出價應該被刪除。我還沒有 100% 下降,但我認為我走在正確的道路上。出價必須是數組,現在它有點被刪除或只是移動了。這是之前的錯誤。最高出價:[哇 400 kr, Boy 311 kr, Man 33 kr, Dude 2 kr]命令>刪除用戶名稱>哇哇已從注冊表中刪除命令>列出拍賣拍賣#1:物品。最高出價:[男孩 311 kr,男子 33 kr,線程“main”中的異常 java.lang.NullPointerExceptionpublic void removeBid(String name) {    for(int a = 0;a < bidIndex; a++) {        if(bids[a].getUser().getName().equals(name)) {            bids[a]=null;            bidIndex--;            break;        }    }    sortBids();public void sortBids() {    if(bidIndex > 1) {        for(int a = 0; a < bidIndex -1; a++) {            for(int b = a + 1; b < bidIndex; b++) {                if(bids[a] == null || bids[a].getBid() < bids[b].getBid()) {                    Bid temp = bids[a];                    bids[a] = bids[b];                    bids[b] = temp;                }            }
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

數組一旦初始化就不能改變大小。如果您創建一個數組new String[10];,它將永遠有 10 個項目(默認情況下為空)。將索引設置為null不會改變這一點。


String[] items = new String[] {"String1", "String2", "String3"};

items[1] = null;

這個數組現在看起來像[String1, null, String3]. 如果您需要盡可能多地更改數組,最好使用List或Map。


如果您想輕松地將一個對象鏈接到另一個對象,我建議您使用HashMap 。在這種情況下,您似乎會將字符串(名稱)鏈接到 Bid 對象。


Map<String, Bid> bids = new HashMap<String, Bid>();


Bid bid1 = new Bid(/*...*/);

Bid bid2 = new Bid(/*...*/);


// Add bids to the map


bids.put("Wow", bid1);

bids.put("Boy", bid2);


// Get any of these objects


Bid retrievedBid = bids.get("Wow");


// Or remove them


bids.remove("Wow");

HashMaps 在概念上類似于其他語言中的關聯數組,在這些語言中存在key -> value關系。每個鍵都是唯一的,但值可以重復。


如果您需要的最終結果是數組,它們也可以轉換為數組。


Bid[] bidsArray = new Bid[0];

bidsArray = bids.values().toArray(bidsArray);


查看完整回答
反對 回復 2022-05-12
?
MYYA

TA貢獻1868條經驗 獲得超4個贊

實現此目的的一種方法是將數組轉換為列表,然后使用 Java 流刪除出價并轉換回來。


    List<Bid> bidsList = Arrays.asList(bids);

    bidsList = bidsList.stream()

            .filter(n -> !n.getUser().getName().equals(name))

            .collect(Collectors.toList());


    bids = bidsList.toArray(new Bid[bidsList.size()]);


查看完整回答
反對 回復 2022-05-12
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號