If a class have too many parameters in the constructor we can either use a structure or a builder pattern.
Which is better? Is there any good practice?
Use a class with structure that meets your need. Martin Fowler has one similar technique called DataTransferObject (DTO), in which you pass an object model instead of retrieving the data using multiple calls (persumably database calls), reducing the cost.
The benefit over builder pattern:
The downside: The object is in mutable state.