教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 资格考试 >

Java 常用的三个集合类

来源:网络收集 时间:2025-04-28
导读: Java 常用的三个集合类 讲集合collection之前,我们先分清三个概念: colection集合,用来表示任何一种数据结构 Collection集合接口,指的是java.util.Collection接口,是Set、List和Queue 接口的超类接口 Collections 集合工具类,指的是 java.util.Collect

Java 常用的三个集合类

讲集合collection之前,我们先分清三个概念:

colection集合,用来表示任何一种数据结构

Collection集合接口,指的是java.util.Collection接口,是Set、List和Queue 接口的超类接口

Collections 集合工具类,指的是 java.util.Collections 类。

我们这里说的集合指的是小写的collection,集合有4种基本形式,其中前三种的父接口是Collection。

List 关注事物的索引列表

Set 关注事物的唯一性

Queue 关注事物被处理时的顺序

一、Collection 接口

Collection接口是 Set 、List 和 Queue 接口的父接口,提供了多数集合常用的方法声明,包括 add()、remove()、contains() 、size() 、iterator() 等。

我们在这里只举一个把集合转成数组的例子,因为Collection本身是个接口所以,我们用它的实现类ArrayList做这个例子:

import java.util.ArrayList;

import java.util.Collection;

public class CollectionTest {

public static void main(String[] args) {

String a = "a",b="b",c="c";

Collection list = new ArrayList();

list.add(a);

list.add(b);

list.add(c);

String[] array = list.toArray(new String[1]);

for(String s : array){

System.out.println(s);

}

}

}

二、几个比较重要的接口和类简介

List 关心的是索引,与其他集合相比,List特有的就是和索引相关的一些方法:get(int index) 、 add(int index,Object o) 、 indexOf(Object o) 。

ArrayList 可以将它理解成一个可增长的数组,它提供快速迭代和快速随机访问的能力。

LinkedList 中的元素之间是双链接的,当需要快速插入和删除时LinkedList成为List中的不二选择。

Vector 是ArrayList的线程安全版本,性能比ArrayList要低,现在已经很少使用

2、Set接口

Set关心唯一性,它不允许重复。

HashSet 当不希望集合中有重复值,并且不关心元素之间的顺序时可以使用此类。

LinkedHashset 当不希望集合中有重复值,并且希望按照元素的插入顺序进行迭代遍历时可采用此类。

TreeSet 当不希望集合中有重复值,并且希望按照元素的自然顺序进行排序时可以采用此类。(自然顺序意思是某种和插入顺序无关,而是和元素本身的内容和特质有关的排序方式,譬如“abc”排在“abd”前面。)

3、Queue接口

Queue用于保存将要执行的任务列表。

LinkedList 同样实现了Queue接口,可以实现先进先出的队列。

PriorityQueue 用来创建自然排序的优先级队列。番外篇中有个例子/archives/3454你可以看一下。

4、Map接口

Map关心的是唯一的标识符。他将唯一的键映射到某个元素。当然键和值都是对象。

HashMap 当需要键值对表示,又不关心顺序时可采用HashMap。

Hashtable 注意Hashtable中的t是小写的,它是HashMap的线程安全版本,现在已经很少使用。

LinkedHashMap 当需要键值对,并且关心插入顺序时可采用它。

TreeMap 当需要键值对,并关心元素的自然排序时可采用它。

三、ArrayList的使用

ArrayList是一个可变长的数组实现,读取效率很高,是最常用的集合类型。

1、ArrayList的创建

在Java5版本之前我们使用:

List list = new ArrayList();

在Java5版本之后,我们使用带泛型的写法:

List<String> list = new ArrayList<String>();

上面的代码定义了一个只允许保存字符串的列表,尖括号括住的类型就是参数类型,也成泛型。带泛型的写法给了我们一个类型安全的集合。关于泛型的知识可以参见这里。

2、ArrayList的使用: List<String> list = new ArrayList<String>();

list.add("nihao!"); list.add("hi!"); list.add("konikiwa!"); list.add("hola"); list.add("Bonjour"); System.out.println(list.size()); System.out.println(list.contains(21)); System.out.println(list.remove("hi!")); System.out.println(list.size());

关于List接口中的方法和ArrayList中的方法,大家可以看看JDK中的帮助。

3、基本数据类型的的自动装箱:

我们知道集合中存放的是对象,而不能是基本数据类型,在Java5之后可以使用自动装箱功能,更方便的导入基本数据类型。

List<Integer> list = new ArrayList<Integer>();

list.add(new Integer(42)); list.add(43);

4、ArrayList的排序:

ArrayList本身不具备排序能力,但是我们可以使用Collections类的sort方法使其排序。我们看一个例子:

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Test {

public static void main(String[] args) {

List<String> list = new ArrayList<String>();

list.add("nihao!");

list.add("hi!");

list.add("konikiwa!");

list.add("hola");

list.add("Bonjour");

System.out.println("排序前:"+ list);

Collections.sort(list);

System.out.println("排序后:"+ list);

}

}

编译并运行程序查看结果:

排序前:[nihao!, hi!, konikiwa!, hola, Bonjour]

排序后:[Bonjour, hi!, hola, konikiwa!, nihao!]

5、数组和List之间的转换

从数组转换成list,可以使用Arrays类的asList()方法:

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

public class Test {

public static void main(String[] args) {

String[] sa = {"one","two","three","four"};

List list = Arrays.asList(sa);

System.out.println("list:"+list);

System.out.println("list.size()="+list.size());

}

}

6、Iterator和for-each

在for-each出现之前,我们想遍历ArrayList中的每个元素我们会使用Iterator接口: import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

public class Test {

public static void main(String[] args) { // Arrays类为我们提供了一种list的便捷创建方式 List<String> list = Arrays.asList("one", "two", "three", "four"); // 转换成Iterator实例 Iterator<String> it = list.iterator(); //遍历

while (it.hasNext()) {

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

}

}

}

在for-each出现之后,遍历变得简单一些:

import java.u …… 此处隐藏:3372字,全部文档内容请下载后查看。喜欢就下载吧 ……

Java 常用的三个集合类.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/107555.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)