Java集合问题,这个地方为什么写i也可以写b也可以呀

img


这个地方为什么写i也可以写b也可以呀 刚刚学Java感谢大家们啦

这是remove方法的2个重载
你可以传入要删除的索引,也可以传入要删除的数据
必须list中泛型类型是非数值类型才可以,如果本身是list<int>,那么只能传索引

一个是移除指定位置,一个是移除指定对象

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7720348
  • 这篇博客也不错, 你可以看下【JAVA】已知一个数组A,将奇数位置的元素存到B数组中,偶数位置的元素存到C数组中。
  • 除此之外, 这篇博客: 后端(java)从入门到进阶路线整理【B站版】【持续更新中】中的 基础能力 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    1. 必须要掌握的知识
      java语言:https://www.bilibili.com/video/av43896218
      mysql:https://www.bilibili.com/video/av19538278
      jdbc:https://www.bilibili.com/video/av59534040/
      java web实战:https://www.bilibili.com/video/av60990675/
      学到这里就可以实现一个完整java web的项目。
      java语言中的三百多集也不是全要看完。从P189之后的内容可以选择性观看,用于提高自己。
    2. java的补充学习
      java8新特性:https://www.bilibili.com/video/av59549886/
      这部分加上java300集P189,构成对java主要学习的补充
  • 以下回答来自chatgpt:

    这段代码中使用了变量i和变量num,它们的作用稍有不同:

    1. 变量i是生产者生产鸡的次数计数器,在生产者的循环中,每次生产一个鸡时,i的值加1,用于记录生产的鸡的数量。对于生产者来说,i的初始值为1,且每次循环都加1,所以它可以用来标识生产的鸡的id。

    2. 变量num是容器中鸡的数量计数器,在容器类SynContainer中,它的初始值为0,每次有鸡被添加到容器中时,num的值加1;每次有鸡被消费时,num的值减1。num的作用是用于判断容器是否满或空,从而控制生产者和消费者的等待和通知。

    这里的代码逻辑是这样的:

    1. 生产者(Productor)不断地循环生产鸡,每次生产完一个鸡后,将鸡添加到容器(SynContainer)中,同时将计数器i的值加1。

    2. 容器(SynContainer)在接收到一个鸡后,会将其添加到鸡数组(chickens)中,并将计数器num的值加1。如果容器已经满了(chickens.length),那么容器会调用this.wait()方法,使生产者线程进入等待状态,直到有消费者将鸡从容器中取走。

    3. 消费者(Consumer)不断地循环取走鸡,每次取走一个鸡后,将鸡从容器(SynContainer)中移除,并将计数器num的值减1。

    4. 容器在没有鸡可供消费时(num<=0),会调用this.wait()方法,使消费者线程进入等待状态,直到有生产者将鸡放入容器中。

    5. 当容器中有新的鸡放入或被取走时,容器会调用this.notifyAll()方法,唤醒正在等待的线程,生产者或消费者将继续执行。

    总结起来,代码中使用变量i和变量num是为了分别记录生产者生产的鸡的数量和容器中鸡的数量,并通过对它们的操作来实现生产者和消费者的同步和互斥。这样设计的好处是可以以不同的角度观察和处理问题,让代码更加灵活和可扩展。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^