[关闭]
@File 2020-04-09T04:54:19.000000Z 字数 886 阅读 107

java集合类的基本原理

java


不废话,直接上代码!

  1. import java.util.AbstractCollection; // 集合父类
  2. import java.util.Iterator; // 迭代器接口
  3. /**
  4. * 自定义一个集合
  5. */
  6. public class TestForEach<T> extends AbstractCollection<T> {
  7. private int size; // 集合大小
  8. private Object[] value; // 集合容器
  9. // 随便赋个值
  10. public TestForEach(Object[] value) {
  11. this.size = value.length;
  12. this.value = value;
  13. }
  14. /**
  15. * 重写迭代器
  16. * @return 迭代器
  17. */
  18. @Override
  19. public Iterator<T> iterator() {
  20. return new Ite<>();
  21. }
  22. /**
  23. * 大小的获取方法
  24. */
  25. @Override
  26. public int size() {
  27. return size;
  28. }
  29. /**
  30. * 迭代器
  31. */
  32. private class Ite<E> implements Iterator<E>{
  33. private int cursor; // 当前位置,也可以理解为指针
  34. /**
  35. * 重写判断下一个元素是否存在方法
  36. */
  37. @Override
  38. public boolean hasNext() {
  39. return cursor != size;
  40. }
  41. /**
  42. * 重写获取下一个元素值的逻辑
  43. */
  44. @Override
  45. public E next() {
  46. if(cursor < size){
  47. return (E)value[cursor++];
  48. }
  49. return null;
  50. }
  51. }
  52. }

拓展说明

AbstractCollection 集合的父类

Iterator 迭代器接口

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注