OptionalArray

added OptionalArray. The same as Optional<T>, but the value is T[] value
instead