| Object arrays are inferior to collections in almost every way. Prefer `Set`, | |
| `List`, or `Multiset` over an object array whenever possible. | |
| A few of these issues are covered, in much greater detail, in | |
| [Effective Java Item 28: Prefer lists to arrays][ej3e-28]. | |
| # Method Parameters | |
| Don't use object arrays as method parameters: | |
| ```java | |
| public void createUsers(User[] users) { ... } | |
| ``` | |
| Use an `Iterable` instead: | |
| ```java | |
| public void createUsers(Iterable<User> users) { ... } | |
| ``` | |
| # Return Values | |
| Don't use object arrays as method return values: | |
| ```java | |
| public User[] loadUsers() { ... } | |
| ``` | |
| Use an `ImmutableList` (or `ImmutableSet`) instead: | |
| ```java | |
| public ImmutableList<User> loadUsers() { ... } | |
| ``` | |
| # Additional Alternatives | |
| If you have a 2-dimensional array (e.g., `Foo[][]`), consider using an | |
| `ImmutableTable<Integer, Integer, Foo>` instead. | |
| [ej3e-28]: https://books.google.com/books?id=BIpDDwAAQBAJ |