(一)Set接口
《1》Set接口是Collections的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可以重复;
《2》Set容器可以与数学中的"集合”的概念相对应;
《3》Set容器有HashSet,TreeSet等
举例:
import java.util.*;
public class Test03 {
public static void main(String[] args){
Set s1 = new HashSet();
Set s2 = new HashSet();
s1.add("a");
s1.add("b");
s1.add("c");
s1.add("yang");
s1.add("miao");
s1.add("miao");
Set su = new HashSet(s1);
su.retainAll(s2);
Set sn = new HashSet(s1);
sn.addAll(s2);
System.out.println(su);
System.out.println(sn);
}
}
运行结果:
[]
[a, b, c, yang, miao]
注:Set和List容器类都具有Constructor(Collcetions c),构造方法用以初始化容器类
(二)List接口
《1》List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,并且可以重复;
《2》List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素;
《3》List容器类有ArrayList,LiinkedList等。
Object get(int index);
Object get(int index,Object element);
void add(int index ,Object element);
Object remove(int index);
int indexof(Object o);
int lastIndexof(Object o);
举例:
import java.util.*;
public class Test04 {
public static void main(String[] args){
List l1 = new LinkedList();
for(int i=0;i<=5;i++){
l1.add("a"+i);
}
System.out.println(l1);
l1.add(3,"A");
System.out.println(l1);
l1.set(5, "B");
System.out.println(l1);
System.out.println((String)l1.get(2)+" ");
System.out.println(l1.indexOf("a5"));
l1.remove(2);
System.out.println(l1);
}
}
运行结果:
[a0, a1, a2, A, a3, a4, a5]
[a0, a1, a2, A, a3, B, a5]
a2
6
[a0, a1, A, a3, B, a5]
(三)List常用算法
类java.util.Collections提供了一些静态方法实现了基于List容器的一些常用算法:
void sort(List):对List容器的元素排序;
void shuffle(List):对List容器内的对象进行随机排序;
void reverse(List):对List容器内的对象进行逆序排列;
void fill(List,object):用一个特定的对象重写整个List容器;
void copy(List dest,List src):将src List容器内容拷贝到dest List容器;
int binarySearch(List,object):对于顺序的List容器,采用折半查找的方法查找特定对象。
import java.util.*;
public class Test05 {
public static void main(String[] args){
List l1 = new LinkedList();
for(int i=0;i<=9;i++){
l1.add("v"+i);
}
System.out.println(l1);
Collections.shuffle(l1);
System.out.println(l1);
Collections.reverse(l1);
System.out.println(l1);
Collections.sort(l1);
System.out.println(l1);
System.out.println(Collections.binarySearch(l1, "v1"));
}
}
运行结果:
[v0, v1, v2, v3, v4, v5, v6, v7, v8, v9]
[v4, v1, v6, v0, v7, v2, v9, v8, v5, v3]
[v3, v5, v8, v9, v2, v7, v0, v6, v1, v4]
[v0, v1, v2, v3, v4, v5, v6, v7, v8, v9]
1