Salesforce Public groups Vs Queues

Groups:
A group consists of a set of users. A group can contain individual users, other groups, or the users in a particular role or territory. It can also contain the users in a particular role or territory plus all the users below that role or territory in the hierarchy.

Queues:
Queues help your teams manage leads, cases, service contracts, and custom objects. Once records are placed in a queue manually or through an automatic case or lead assignment rule, records remain there until they’re assigned to a user or taken by one of the queue members. Any queue member or users above them in the role hierarchy can take ownership of records in a queue. Use queues to route lead, case, and custom object records to a group.

Difference between Public Group and Queue:

Queue Public Group
Queues are used primary as Owners of records. Public Groups are used primary for security.
Queue is a feature available to salesforce.com users that allows you to integrate prospect assignments with your current salesforce.com workflow. Rather than assigning to a specific user, you can choose to assign leads to a salesforce.com queue and then use your CRM workflow or manual method of distributing leads to sales representatives. Public Group is kind of team or group of related users, this will help to share the data.
Queues are typically used when you want to assign a record to a bunch of users.Using Queues you can assign a record to multiple users, so that any member of the queue can work on the record. It also allows the users to have there separate views. Group on the other hand are used more for a sharing purpose. They are not the owner of the records like queue, but can share the records in terms of access.
Queue can be created for Custom objects and for Case, Lead and Knowledge Article Version. Public group created can be used across any objects.