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);

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()]);
添加回答
舉報