1.Set
package com.controller;
import org.springframework.web.bind.annotation.*;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
@RestController
@CrossOrigin
@RequestMapping("/os")
public class OsController {
@GetMapping("/{id}")
public String findById(@PathVariable Long id){
Set<String> list = new TreeSet<>();
list.add("aaa");
list.add("aaa");
list.add("bbb");
for (String s : list) {
System.out.print(s);
}
return "369";
}
}
2、TreeSet
User 文件
package com.model;
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
}
OsController文件(TreeSet使用对象要给排序规则,不然报错)
package com.controller;
import com.model.User;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
@RestController
@CrossOrigin
@RequestMapping("/os")
public class OsController {
@GetMapping("/{id}")
public String findById(@PathVariable Long id){
TreeSet<User> list = new TreeSet<>(new Comparator<User>() {
@Override
public int compare(User o1, User o2) {
int result = (o1.getId() - o2.getId());
result = result == 0 ? o1.getName().compareTo(o2.getName()) : result;
return result;
}
});
User user = new User(1,"dade1");
User user2 = new User(1,"dade2");
User user3 = new User(2,"dade3");
list.add(user);
list.add(user2);
list.add(user3);
for (User s : list) {
System.out.print(s);
}
return "369";
}
}
排序或者使用接口排序
package com.model;
import java.util.Comparator;
public class User implements Comparable<User> {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
'}';
}
@Override
public int compareTo(User o) {
int req = this.id-o.getId();
return req;
}
}
3、HashSet(对象全部插入,一样也插入),排序无效也会插入
package com.controller;
import com.model.User;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
@RestController
@CrossOrigin
@RequestMapping("/os")
public class OsController {
@GetMapping("/{id}")
public String findById(@PathVariable Long id){
HashSet<User> list = new HashSet<>();
User user = new User(1,"dade1");
User user2 = new User(1,"dade1");
User user3 = new User(2,"dade3");
list.add(user);
list.add(user2);
list.add(user3);
for (User s : list) {
System.out.print(s);
}
return "369";
}
}
不是数组会保留唯一
package com.controller;
import com.model.User;
import org.springframework.web.bind.annotation.*;
import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;
@RestController
@CrossOrigin
@RequestMapping("/os")
public class OsController {
@GetMapping("/{id}")
public String findById(@PathVariable Long id){
HashSet<Integer> list = new HashSet<>();
User user = new User(1,"dade1");
User user2 = new User(1,"dade1");
User user3 = new User(2,"dade3");
list.add(1);
list.add(1);
list.add(2);
for (int s : list) {
System.out.print(s);
}
return "369";
}
}