删除数组。

运行一个简单的拍卖程序,唯一的问题是如果用户在拍卖结束前被删除,他/她的出价应该被删除。我还没有 100% 下降,但我认为我走在正确的道路上。


出价必须是数组,现在它有点被删除或只是移动了。这是之前的错误。


最高出价:[哇 400 kr, Boy 311 kr, Man 33 kr, Dude 2 kr]


命令>删除用户


名称>哇


哇已从注册表中删除


命令>列出拍卖


拍卖#1:物品。最高出价:[男孩 311 kr,男子 33 kr,线程“main”中的异常 java.lang.NullPointerException


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

                }

            }


HUH函数
浏览 104回答 2
2回答

芜湖不芜

数组一旦初始化就不能改变大小。如果您创建一个数组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 mapbids.put("Wow", bid1);bids.put("Boy", bid2);// Get any of these objectsBid retrievedBid = bids.get("Wow");// Or remove thembids.remove("Wow");HashMaps 在概念上类似于其他语言中的关联数组,在这些语言中存在key -> value关系。每个键都是唯一的,但值可以重复。如果您需要的最终结果是数组,它们也可以转换为数组。Bid[] bidsArray = new Bid[0];bidsArray = bids.values().toArray(bidsArray);

MYYA

实现此目的的一种方法是将数组转换为列表,然后使用 Java 流删除出价并转换回来。&nbsp; &nbsp; List<Bid> bidsList = Arrays.asList(bids);&nbsp; &nbsp; bidsList = bidsList.stream()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .filter(n -> !n.getUser().getName().equals(name))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .collect(Collectors.toList());&nbsp; &nbsp; bids = bidsList.toArray(new Bid[bidsList.size()]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java