ssl外贸网站,做网站建设的工资高吗,郴州seo推广,企业网站源码带手机版Java提供的众多集合类由两大接口衍生而来#xff1a;单列集合Collection和双列集合Map 
Collection接口 
Collection接口是所有单列集合的父接口 #xff0c;每次储存一个元素#xff0c;接口的主要方法包括#xff1a; 
public boolean add(E e) : 把给定的对象添加到当前…Java提供的众多集合类由两大接口衍生而来单列集合Collection和双列集合Map 
Collection接口 
Collection接口是所有单列集合的父接口 每次储存一个元素接口的主要方法包括 
public boolean add(E e) : 把给定的对象添加到当前集合中 。public  void clear() :清空集合中所有的元素。public boolean remove(E e) : 把给定的对象在当前集合中删除。public boolean contains(E e) : 判断当前集合中是否包含给定的对象。public  boolean isEmpty( ): 判断当前集合是否为空。public int size() :返回集合中元素的个数。 public Object[] toArray() : 把集合中的元素存储到数组中。
方法演示如下 
import java.util.ArrayList;
import java.util.Collection;public class Demo1Collection {public static void main(String[] args) {// 创建集合对象 // 使用多态形式CollectionString coll  new ArrayListString();// 使用方法// 添加功能  boolean  add(String s)coll.add(小李广);coll.add(扫地僧);coll.add(石破天);System.out.println(coll);// boolean contains(E e) 判断o是否在集合中存在System.out.println(判断  扫地僧 是否在集合中coll.contains(扫地僧));//boolean remove(E e) 删除在集合中的o元素System.out.println(删除石破天coll.remove(石破天));System.out.println(操作之后集合中元素:coll);// size() 集合中有几个元素System.out.println(集合中有coll.size()个元素);// Object[] toArray()转换成一个Object数组Object[] objects  coll.toArray();// 遍历数组for (int i  0; i  objects.length; i) {System.out.println(objects[i]);}// void  clear() 清空集合coll.clear();System.out.println(集合中内容为coll);// boolean  isEmpty()  判断是否为空System.out.println(coll.isEmpty());  	}
} 
且collection有两个重要的子接口分别是Set和List。其中List的特点是元素有序、元素可重复。Set的特点是元素无序而且不可重复。List接口的主要实现类有java.util.Arraylist和java.util.LinkedlistSet接口的主要实现类有java.util.HashSet、java.util.LinkedHashSet和java.util.TreeSet。 
List集合 
List作为Collection集合的子接口用于定义以列表形式存储的集合List接口为集合中的每个对象分配了一个索引(index)标记该对象在List中的位置并可以通过index定位到指定位置的对象。List在Collection基础上增加的主要方法包括 
public void add(): 将指定的元素添加到该集合中的指定位置上。public E get(int index):返回集合中指定位置的元素。public E remove(int index): 移除列表中指定位置的元素, 返回的是被移除的元素。public E set(int index,E element):用指定元素替换集合中指定位置的元素,返回值是更新前的元素。
List接口的常用实现类 
ArrayList 
ArrayList基于数组来实现集合的功能其内部维护了一个可变长的对象数组集合内所有对象存储于这个数组中并实现该数组长度的动态伸缩 
ArrayList使用数组拷贝来实现指定位置的插入和删除 
插入 删除 LinkedList 
LinkedList基于链表来实现集合的功能其实现了静态类Node集合中的每个对象都由一个Node保存每个Node都拥有到自己的前一个和后一个Node的引用 
LinkedList追加元素的过程示例 ArrayList 和 LinkedList区别 
ArrayList的随机访问更高基于数组实现的ArrayList可直接定位到目标对象而LinkedList需要从头Node或尾Node开始向后/向前遍历若干次才能定位到目标对象LinkedList在头/尾节点执行插入/删除操作的效率比ArrayList要高由于ArrayList每次扩容的容量是当前的1.5倍所以LinkedList所占的内存空间要更小一些二者的遍历效率接近但需要注意遍历LinkedList时应用iterator方式不要用get(int)方式否则效率会很低
Vector 
Vector和ArrayList很像都是基于数组实现的集合它和ArrayList的主要区别在于 
Vector是线程安全的而ArrayList不是由于Vector中的方法基本都是synchronized的其性能低于ArrayListVector可以定义数组长度扩容的因子ArrayList不能
Set集合 
Set接口和List接口一样同样继承自Collection接口它与Collection接口中的方法基本一致并没有对Collection接口进行功能上的扩充只是比Collection接口更加严格了。与List接口不同的是Set接口中元素无序并且都会以某种规则保证存入的元素不出现重复。  
Set接口的常用实现类 
HashSet 
HashSet是Set接口的一个实现类它所存储的元素是不可重复的并且元素都是无序的(即存取顺序不一致) 。 
HashSet是根据对象的哈希值来确定元素在集合中的存储位置因此具有良好的存取和查找性能。保证元素唯一性的方式依赖于hashcode与equals方法。所以给HashSet中存放自定义类型元素时需要重写对象中的hashCode和equals方法建立自己的比较方式才能保证HashSet集合中的对象唯一 。 
LinkedHashSet 
我们知道HashSet保证元素唯一可是元素存放进去是没有顺序的那么我们要保证有序怎么办呢 
在HashSet下面有一个子类java.util.LinkedHashSet它是链表和哈希表组合的一个数据存储结构能够保证顺序的有效输出。 
演示代码如下: 
public class LinkedHashSetDemo {public static void main(String[] args) {SetString set  new LinkedHashSetString();set.add(bbb);set.add(aaa);set.add(abc);set.add(bbc);IteratorString it  set.iterator();while (it.hasNext()) {System.out.println(it.next());}}
} 结果   bbb   aaa   abc   bbc