黑马程序员--集合--4th day

来源:互联网 发布:哪个购票软件安全 编辑:程序博客网 时间:2024/05/16 23:43

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

Collection

1,添加:

add(object):添加一个元素

addAll(Collection) :添加一个集合中的所有元素。

2,删除:

clear():将集合中的元素全删除,清空集合。

remove(obj) :删除集合中指定的对象。注意:删除成功,集合的长度会改变。

removeAll(collection) :删除部分元素。部分元素和传入Collection一致。

3,判断:

boolean contains(obj) :集合中是否包含指定元素 。

boolean containsAll(Collection) :集合中是否包含指定的多个元素。

boolean isEmpty():集合中是否有元素。 

4,获取:

int size():集合中有几个元素。

5,取交集:

boolean  retainAll(Collection) :对当前集合中保留和指定集合中的相同的元素。如果两个集合元素相同,返回flase;如果retainAll修改了当前集合,返回true

6,获取集合中所有元素:

Iterator  iterator():迭代器

7,将集合变成数组:

toArray();

 

List

List:有序,存入的元素和取出的元素的顺序是一样的。元素是可以重复的

|--ArrayList:底层是数组的数据结构。线程不同步。查询数据速度较快,但是存储数据速度较慢。出现在jdk1.2.

|--LinkedList:底层结构是链表数据结构。线程不同步存取数据速度较快,但是暑假速度较慢。出现在jdk1.2.

|--Vector:底层结构是数组结构。线程同步。查询和存储数据速度都较慢。现在已经被ArrayList所取代。出现在jdk1.0.

归纳:当一个集合即能用ArrayListLinkedList的时候,建议使用ArrayList,因为查询数据的次数始终比存取数据的次数多。

 

Set

Set:无序,存入的元素和取出的元素顺序不一样。元素不可以重复

|--HashSet:底层的数据结构是哈希表。数据的存放顺序是按照存入对象的内存地址进行排序,而不是输入顺序。线程不同步。

|--TreeSet:底层的数据结构是二叉树。数据的存放是按照ASCII来进行排序的。线程不同步。

 

iterator

迭代器iterator: 用于去集合中的元素

public static void main(String[] args) {

ArrayList al = new ArrayList();

al.add("abc0");

al.add("abc1");

al.add("abc2");

//方式一:代码简洁明了

Iterator it = al.iterator();

while(it.hasNext()){

System.out.println(it.next());

//方式二:代码执行速度快,并且代码运行外后iterator对象马上释放

/*for(Iterator it = al.iterator();it.hasNext(); ){

System.out.println(it.next());

*/

}

}


0 0