TreeSet排序分析
重复元素判断
class People implements Comparable<People>{
private String name;
private Integer age;
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
People people = (People) o;
return Objects.equals(name, people.name) &&
Objects.equals(age, people.age);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
@Override
public int compareTo(People o) {
if(this.age > o.age){
return 1;
}else if(this.age < o.age){
return -1;
}else {
return this.name.compareTo(o.name);
}
}
public People(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
public class Collect {
public static void main(String[] args) {
Set<People> set = new HashSet<>();
set.add(new People("zhangsan",20));
set.add(new People("lisi",21));
set.add(new People("wangwu",18));
set.add(new People("zhangsan",20));
System.out.println(set);
}
}
集合输出
迭代输出:Iterator
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("hello");
//实例化Iterator对象
Iterator<String> iterator = list.iterator();
while(iterator.hasNext()){
String str = iterator.next();
//System.out.println(str);
if(str.equals("hello")){
iterator.remove();
continue;
}
System.out.println(str);
双向迭代接口:ListIterator
public class Collect {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("hello");
list.add("world");
list.add("hello");
list.add("B");
//实例化Iterator对象
ListIterator<String> listIterator = list.listIterator();
System.out.println("从前向后输出:");
while (listIterator.hasNext()){
System.out.println(listIterator.next()+",");
}
System.out.println("\n从后向前输出:");
while (listIterator.hasPrevious()){
System.out.println(listIterator.previous()+",");
}
}
}
枚举输出: Enumeration
Vector<String> vector = new Vector<>() ;
vector.add("Hello") ;
vector.add("Hello") ;
vector.add("B") ;
vector.add("Bit") ;
Enumeration<String> enumeration = vector.elements() ;
while (enumeration.hasMoreElements()) {
System.out.println(enumeration.nextElement()) ;
}
foreach输出
public static void main(String[] args) {
List<String> list = new ArrayList<>() ;
list.add("Hello") ;
list.add("Hello") ;
list.add("B") ;
list.add("Bit") ;
for (String str : list) {
System.out.println(str) ;
}
}