A data structure!

Roster is a data structure!

We've established that based on the specification of a problem, we choose whether find implements the linear or binary search. That choice would require to organize the (students array) data in different ways (sorted vs. unsorted). To establish the desired organization of data, we would have to implement add and remove methods differently.

There are many cases where solving a problem efficiently requires such due diligence in the organization of data and implementation of operation that manipulate the data, just as in Roster class.

A Data Structure encapsulates organized mechanisms for efficiently storing, accessing & manipulating data.

Thus Roster is indeed a data structure.

In the general sense, any data type (even as simple as an integer) can be viewed as a simple data structure. More commonly, a distinction is made so the term "data structure" means an organization or structuring for a collection of data types.

Don't fixate too much on what is a type and what is a structure; in future chapters, we will make a clear distinction by using Java Interfaces to define (abstract) data types. Data structures would be fully-specified, non-abstract (concrete) classes that implement those interfaces.

Resources
  • CrashCourse has a fun video on Data Structures; a bird's-eye overview of many of the data structures we will be looking at in this course.