您的位置:首页 > 其它

Collection中List和Set、Map学习

2015-10-14 15:33 211 查看

一、Collection与Collections的区别

    Java集合框架是Java语言的重要组成部分,它包含了系统而完整的集合层次体系,封装了大量的数据结构的实现。深刻理解Java集合框架的组成结构及其中的实现类和算法,能极大提高程序员编码的能力。本章讲述Java集合框架,主要包括集合框架的概念、集合框架接口,以及列表、集合、映射三种结构还有迭代方法、比较方法和较早以前版本的类和接口。下面就让我们一起来学习这些内容。

     集合有时又称为容器,简单地说,它是一个对象,能将具有相同性质的多个元素汇聚成一个整体。集合被用于存储、获取、操纵和传输聚合的数据。Java集合框架提供了有效的数据结构和算法,因此程序员不需要自己编写代码实现这些功能。而且结合框架对各个接口的实现是可以互换的,因此很容易转换接口。这样就提高了软件的复用性。

注意事项:

(1)Collection是集合类的一个顶级接口,其直接继承接口有List与Set

(2)Collections则是集合类的一个工具类/帮助类,其中提供了一系列静态方法,用于对集合中元素进行排序、搜索以及线程安全等各种操作。

二、List、Set、Map三大集合区别与说明

     Java平台提供了一个全新的集合框架。集合框架的核心接口为Collection、List(列表)、Set(集合)和Map(映射)。



图1  集合关系图

从图1中可以看到,Collection是集合继承树中最顶层的接口,几乎所有的Java集合框架成员都继承实现了Collection接口,或者与其有密切关系。Collection提供了关于集合的通用操作。Set接口和List接口都继承了Collection接口,而Map接口没有继承Collection接口。因此,Set对象和List对象都可以调用Collection接口的方法,而Map对象则不可以。

    下面我们对这三种类型接口的结构加以说明:Set有点类似数学中集合的定义,是无序的、没有重复项目的集合。List是位置性集合,加进清单的元素可以加在清单中特定位置或加到末尾,可以保存重复的元素。Map用于关键字/数值对,其中关键字是数值的惟一标识(不可重复),用户可以按关键字存取数据,数据可重复。具体形式如图2所示:



 图2 各集合元素存放示例

(1)Collection:集合层次中的根接口,JDK 没有提供这个接口直接的实现类。

   (2)Set:不能包含重复的元素。

   (3) List:是一个有序的集合,可以包含重复的元素。提供了按索引访问的方式。

   (4)Map:包含了 key-value 对。Map 不能包含重复的 key。

ArrayList使用范例

package com.lilin.collection;

import java.util.ArrayList;
import java.util.Iterator;

/**
* ArrayList使用
*
* @author lilin 2015年10月14日下午2:57:53
* @since JDK 1.6
*/
public class CollectionTest {

public static void main(String[] args) {

ArrayList<String> myList = new ArrayList<String>();
myList.add("李林");
myList.add("B");
myList.add("RockLi");
myList.add("D");
myList.set(0, "A");//在索引位置0上代替为李林

// 遍历ArrayList方法一
Iterator<String> iterator = myList.iterator();
System.out.println("遍历ArrayList方法1");
while (iterator.hasNext()) {
System.out.println(iterator.next());
}

// 遍历ArrayList方法二
System.out.println("遍历ArrayList方法2");
for (Object string : myList) {
System.out.println(string);
}

// 遍历ArrayList方法三
System.out.println("遍历ArrayList方法3");
for (int i = 0; i < myList.size(); i++) {
System.out.println(myList.get(i));
}

// 删除元素
myList.remove("RockLi");
System.out.println("删除元素后的ArrayList");
Iterator<String> iterator2 = myList.iterator();
System.out.println("删除后遍历ArrayList");
while (iterator2.hasNext()) {
String string = iterator2.next();
//条件判断,把含有元素"D"的元素删除
if (string.equals("D")) {
iterator2.remove();
} else {
System.out.println(string);
}

}
}

}


输出结果:

遍历ArrayList方法1

A

B

RockLi

D

遍历ArrayList方法2

A

B

RockLi

D

遍历ArrayList方法3

A

B

RockLi

D

删除元素后的ArrayList

删除后遍历ArrayList

A

B


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: