List与Set的使用
Posted 桥er桑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了List与Set的使用相关的知识,希望对你有一定的参考价值。
接口Collection:
Collection是Java的一个集合框架, 也是一个根接口。JDK中没有提供此接口的任何实现,但是提供了更具体的子接口Set和List接口的实现,所有的Collection实现类都是通过这些子接口间接实现了Collection。
Collection接口有两种构造方法,一种用于构造空的Collection,另一种是带有Collection类型单参数的构造方法。该接口常用的方法包括add(E e),addAll(Collection<?> e),clear(),contains(Object o),equals(Object o),isEmpty(),remove(Object o),size(),toArray(),iterator()等等。
常用子接口包括List,Set,Queue等。
Set接口:
一个不包含重复元素的Collection,并且最多包含一个null元素,Set中的元素是自动排序的,与添加顺序无关。
常用实现类包括HashSet和TreeSet,区别为 1.HashSet底层是通过HashMap实现的,而TreeSet是通过TreeMap实现的。
2.TreeSet类是使用元素的自然顺序对元素进行排序,因此必需实现Comparable接口,而HashSet根据哈希值来对元素进行排序。
import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.TreeSet; public class Collection_try { public static void main(String[] args){ Set set=new HashSet(); set.add("2"); set.add("1"); set.add("3"); set.add("4"); Iterator i=set.iterator(); while(i.hasNext()){ System.out.println(i.next()); } System.out.println("-------------------------"); A a1=new A(11); A a2=new A(12); A a3=new A(13); A a4=new A(10); TreeSet set1=new TreeSet(); set1.add(a1); set1.add(a2); set1.add(a3); set1.add(a4); Iterator i1=set1.iterator(); while(i1.hasNext()){ System.out.println(i1.next()); } System.out.println(set1.size()); } } class A implements Comparable{ private int i; public int getI() { return i; } public void setI(int i) { this.i = i; } public A(int i){ this.i=i; } public int compareTo(Object o) //写具体的比较方法 { A s=(A)o; if(s.getI()<this.i){ return 1; }else{ return -1; } } public String toString(){ return i+":ok"; } }
List接口:
可以包含重复元素的Collection,但是不可以包含null元素,用户可以对列表中每个位置的元素进行精确控制。
常用实现类包括Vector,LinkedList,ArrayList,Stack。
未完待续。。。
以上是关于List与Set的使用的主要内容,如果未能解决你的问题,请参考以下文章
Collection和Collections区别(List,set)