P534 集合-List的一个小面试题
package com.collection;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
public class ListExer {
@Test
public void testListRemove(){
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(1);
updateList(list);
System.out.println(list);
}
// 区分remove
private void updateList(List list){
list.remove(2);
list.remove(new Integer(2));
}
}
P535 集合-Set接口实现类的对比
package com.collection;
public class SetTest {
}
P536 集合-Set无序性与不可重复性的解析
package com.collection;
import org.junit.Test;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class SetTest {
@Test
public void Test1(){
Set set = new HashSet();
set.add(456);
set.add(123);
set.add(123);
set.add("AA");
set.add(new User("Tom",12));
set.add(new User("Tom",12));
set.add(129);
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
P537 集合-HashSet中元素的添加过程
P538 集合-关于hashCode和equals的重写
// 要求 向Set中添加的元素,其所在类一定要重写hashCode和equals方法
// 重写的方法,相等的对象必须具有相等的散列码
P539 集合-LinkedHashSet的使用
// LinkedHashSet作为HashSet的子类,在添加数据的同时,每个数据还维护了两个引用,记录此数据的前一个
// 数据和后一个数据
// 对于频繁的遍历操作,LinkedHashSet比HashSet效率高
@Test
public void test2(){
Set set = new LinkedHashSet();
set.add(456);
set.add(123);
set.add(123);
set.add("AA");
set.add(new User("Tom",12));
set.add(new User("Tom",12));
set.add(129);
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
P540 集合-TreeSet的自然排序
package com.collection;
import org.junit.Test;
import java.util.Iterator;
import java.util.TreeSet;
public class TreeSetTest {
@Test
public void test1(){
TreeSet set = new TreeSet();
// set.add(123);
// set.add(456);
// set.add("AA");
// set.add(new User("Tom",12));
// 例1
// set.add(34);
// set.add(17);
// set.add(6);
// set.add(-2);
// set.add(11);
//例2
set.add(new User("Tom",12));
set.add(new User("Jerry",22));
set.add(new User("Rye",18));
set.add(new User("Antares",17));
set.add(new User("Charis",16));
// 这里集合的无重复性是由compareTo决定的
set.add(new User("Charis",26));
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}
}
P541 集合-TreeSet的定制排序
// 定制排序
@Test
public void test2(){
Comparator com = new Comparator() {
// 按照年龄从小到大排序
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof User && o2 instanceof User){
User u1 = (User) o1;
User u2 = (User) o2;
return Integer.compare(u1.getAge(),u2.getAge());
}else{
throw new RuntimeException("输入数据类型不匹配");
}
}
};
TreeSet set = new TreeSet(com);
set.add(new User("Tom",12));
set.add(new User("Jerry",22));
set.add(new User("Rye",18));
set.add(new User("Antares",17));
set.add(new User("Charis",16));
// 这里集合的无重复性是由compare决定的
set.add(new User("Charis",26));
Iterator iterator = set.iterator();
while (iterator.hasNext()){
System.out.println(iterator.next());
}
}