【问题标题】:Creating size method for list implementation为列表实现创建大小方法
【发布时间】:2020-02-29 19:15:12
【问题描述】:

我需要实现我自己的 List.size() 方法。我创建了这样一个方法:

    public  class MyArrayList<Long> implements List<Long> {

 List<Long> list;

    @Override
    public int size() {
        if(list == null) {
            throw new NullPointerException("List is null");
        }
        int size = 0;
        for(Long element : list) {
            size++;
        }
        return size;

} 我写了一个抽象的测试类来测试现有的size和mine方法。

public abstract class AbstractArrayListTest {
    protected abstract List<Long> getEmptyList();
    protected abstract List<Long> getSizeOfTheList();

    @Test
    public void shouldReturnFalseIfListContainElement() {
        assertTrue(getEmptyList().isEmpty());
    }
    @Test
    public void shouldReturnSizeOfList() {
        int size = getSizeOfTheList().size();
        assertEquals(size, getEmptyList().size());
    }
}

每次我尝试测试它时都会得到一个空 E。有什么想法可以写吗?值得一提的是,List 的原始实现通过了这个测试。

【问题讨论】:

    标签: java list algorithm junit collections


    【解决方案1】:

    您没有初始化要包装的列表。当您尝试对其进行迭代时,您将获得 NPE。请尝试以下类定义:

    public  class MyArrayList<Long> implements List<Long> {
    
        List<Long> list = new ArrayList<>();
    
        // rest of the code
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2010-10-02
      • 1970-01-01
      • 2013-06-20
      • 1970-01-01
      • 1970-01-01
      • 2011-08-15
      相关资源
      最近更新 更多