26     public function clear()
 
   37     public function get($key)
 
   39         return isset($this->array[$key]) ? $this->array[$key] : 
null;
 
   62     public function next()
 
   64         return next($this->array);
 
   74     public function prev()
 
   76         return prev($this->array);
 
   86     public function set($key, $element)
 
   88         $this->array[$key] = $element;
 
   97     public function setArray(array $array)
 
  108     public function append($element)
 
  110         $this->array[] = $element;
 
  123     public function add($key, $element)
 
  126         if (!array_key_exists($key, $this->array)) {
 
  127             $this->array[$key] = $element;
 
  128         } elseif (is_array($this->array[$key])) {
 
  129             $this->array[$key][] = $element;
 
  131             $this->array[$key] = [$this->array[$key], $element];
 
  143     public function remove($key)
 
  145         unset($this->array[$key]);
 
  155     public function hasKey($key)
 
  157         return array_key_exists($key, $this->array);
 
  170         $result = array_search($value, $this->array, 
true);
 
  171         return ($result !== 
false);
 
  180     public function replace(array $data)
 
  182         $this->array = $data;
 
  191         return new \ArrayIterator($this->array);
 
  203         return isset($this->array[$offset]) ? $this->array[$offset] : 
null;
 
  212     public function offsetSet($offset, $value)
 
  214         $this->array[$offset] = $value;
 
  226         return isset($this->array[$offset]);
 
  236         unset($this->array[$offset]);
 
  250     public function count()
 
  252         return count($this->array);
 
  270     public function filter(\Closure $closure)
 
  272         return new ArrayList(array_filter($this->array, $closure));
 
  282         return new ArrayList(
 
  283             array_filter($this->array, 
function($key) use ($keys) {
 
  284                 return array_search($key, $keys) !== 
false;
 
  285             }, ARRAY_FILTER_USE_KEY)
 
  294     public function map(\closure $mapFunction)
 
  296         return new ArrayList(array_map($mapFunction, $this->array));
 
  305         $flattenedArray = [];
 
  306         array_walk_recursive($this->array, 
function($item) use(&$flattenedArray) {
 
  307             $flattenedArray[] = $item;
 
  309         return new ArrayList($flattenedArray);