java – 如何使用contains来搜索特定字符串的自定义对象ArrayList?

前端之家收集整理的这篇文章主要介绍了java – 如何使用contains来搜索特定字符串的自定义对象ArrayList?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我完全不喜欢编程(昨天开始……)和Java,所以请原谅任何愚蠢的错误和非常糟糕的代码(我不知道如何订购/格式化).我已经完成了制作视频库存的任务,我希望能够搜索库存以检查特定视频是否在那里.

我知道我可以使用contains来执行此操作,但我不能使用它来处理我的自定义对象ArrayList(视频),我希望它能够搜索所有数据(下面的每个InventoryRow).我已经覆盖了equals和HashCode,但它仍然无法工作 – 每当我尝试运行代码时,它总会告诉我即使视频在那里也无法找到视频. (仅供参考我在租用和检查功能下使用包含在我的代码末尾)

我真的很感激任何帮助,因为我一整天都在谷歌搜索无济于事.如果这不能做或其他方法会更好,请告诉我!谢谢.

  1. import java.text.DateFormat;
  2. import java.text.SimpleDateFormat;
  3. import java.util.*;
  4. class InventoryRow {
  5. @Override
  6. public int hashCode() {
  7. final int prime = 31;
  8. int result = 1;
  9. result = prime * result
  10. + ((availability == null) ? 0 : availability.hashCode());
  11. result = prime * result + ((name == null) ? 0 : name.hashCode());
  12. result = prime * result
  13. + ((returndate == null) ? 0 : returndate.hashCode());
  14. result = prime * result + ((type == null) ? 0 : type.hashCode());
  15. return result;
  16. }
  17. @Override
  18. public boolean equals(Object obj) {
  19. if (this == obj)
  20. return true;
  21. if (obj == null)
  22. return false;
  23. if (getClass() != obj.getClass())
  24. return false;
  25. InventoryRow other = (InventoryRow) obj;
  26. if (availability == null) {
  27. if (other.availability != null)
  28. return false;
  29. } else if (!availability.equals(other.availability))
  30. return false;
  31. if (name == null) {
  32. if (other.name != null)
  33. return false;
  34. } else if (!name.equals(other.name))
  35. return false;
  36. if (returndate == null) {
  37. if (other.returndate != null)
  38. return false;
  39. } else if (!returndate.equals(other.returndate))
  40. return false;
  41. if (type == null) {
  42. if (other.type != null)
  43. return false;
  44. } else if (!type.equals(other.type))
  45. return false;
  46. return true;
  47. }
  48. private String name;
  49. private String type;
  50. private Character availability;
  51. private String returndate;
  52. public InventoryRow(String name,String type,Character availability,String returndate) {
  53. this.name = name;
  54. this.type = type;
  55. this.availability = availability;
  56. this.returndate = returndate;
  57. }
  58. public String getReturndate() {
  59. return returndate;
  60. }
  61. public void setReturndate(String returndate) {
  62. this.returndate = returndate;
  63. }
  64. public String getName() {
  65. return name;
  66. }
  67. public void setName(String name) {
  68. this.name = name;
  69. }
  70. public String getType() {
  71. return type;
  72. }
  73. public void setType(String type) {
  74. this.type = type;
  75. }
  76. public Character getAvailability() {
  77. return availability;
  78. }
  79. public void setAvailability(Character availability) {
  80. this.availability = availability;
  81. }
  82. public String toString() {
  83. return name + " " + type + " " + availability + " " + returndate;
  84. }
  85. }
  86. public class InventorySort {
  87. public static void main(String[] args) {
  88. List
最佳答案
你可以使用包含.但是,对于编程的第一天,简单地迭代您的库存,将输入字符串与视频名称进行比较可能更容易理解:

  1. boolean foundIt = false;
  2. for (InventoryRow ir : videos) {
  3. if (line3.equals(ir.getName())) {
  4. foundIt = true;
  5. break;
  6. }
  7. }
  8. if (foundIt) {
  9. System.out.println("Video found!");

猜你在找的Java相关文章