Newer
Older
libj / include / j / util / list.hpp
/**
 * @file list.hpp
 * @brief J Library List ヘッダファイル。
 * @copyright  2001 - 2024  Nomura Kei
 * @depends
 *   j/lang/iterable.hpp
 */
#ifndef J_UTIL_LIST_HPP
#define J_UTIL_LIST_HPP

#include <j/util/collection.hpp>

namespace j
{
    namespace util
    {

        template <typename T>
        class List : public Collection<T>
        {
        public:
            virtual ~List() = default;
            virtual void add(int index, const T &t) = 0;
            virtual T remove(int index) = 0;
            virtual T &get(int index) = 0;
            virtual T set(int index, const T &t) = 0;
            virtual int indexOf(const T &t) const = 0;
            virtual int lastIndexOf(const T &t) const = 0;
        };

    } // namespace util
} // namespace j

#endif // J_UTIL_LIST_HPP