- 浏览: 31044 次
- 性别:
- 来自: 合肥
最新评论
Java 集合框架(Java Collections Framework,JCF),它主要由一组用来操作对象的接口组成的.
集合接口有如下几种:
Collection接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式
Set接口:Set中的数据对象没有顺序且不可以重复
List接口:List中的数据对象有顺序且可以重复
Map接口定义了存储"键(key)-值(value)映射对"的方法
一 Collection接口中所定义的方法:
boolean add(E e)
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
void clear()
移除此 collection 中的所有元素(可选操作)。
boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean equals(Object o)
比较此 collection 与指定对象是否相等。
int hashCode()
返回此 collection 的哈希码值。
boolean isEmpty()
如果此 collection 不包含元素,则返回 true。
Iterator<E> iterator()
返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
boolean removeAll(Collection<?> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
boolean retainAll(Collection<?> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
int size()
返回此 collection 中的元素数。
Object[] toArray()
返回包含此 collection 中所有元素的数组。
<T> T[] toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
二 Iterator接口
所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象
Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作.
Iterator接口定义了如下方法:
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
下面举例说明Collection和迭代器的一些常见用法:
三 Set接口
Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可以重复
Set容器可以与数学中的"集合"的概念相对应.JDK API中所提供的Set容器类常见的有:HashSet,TreeSet等
四 List接口
List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复.List容器中的元素都对应一个整数型
的序号记载其在容器中的位置,可以根据序号存取容器中的元素.JDK API所提供的List容器类常见有:ArrayList,LinkedList等
五 Collections类
类java.util.Collections提供了在 collection 上进行操作或返回 collection 的静态方法.
常用方法:
public static <T extends Comparable<? super T>> void sort(List<T> list)根据元素的自然顺序 对指定列表按升序进行排序
public static void reverse(List<?> list)反转指定列表中元素的顺序。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)使用二分搜索法搜索指定列表,以获得指定对象。
public static <T> void copy(List<? super T> dest,List<? extends T> src)将所有元素从一个列表复制到另一个列表
六 Comparable接口
public interface Comparable<T>此接口强行对实现它的每个类的对象进行整体排序
常见方法:
int compareTo(T o)比较此对象与指定对象的顺序
七 Map接口
实现Map接口的类用来存储健-值对.Map接口的实现类有HashMap和TreeMap等.Map类中存储的键-值对通过键来标识,所以键值不能重复
常用方法有:
V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
V put(K key,V value)将指定的值与此映射中的指定键关联(可选操作)。
V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。
int size()返回此映射中的键-值映射关系数
boolean isEmpty()如果此映射未包含键-值映射关系,则返回 true。
void putAll(Map<? extends K,? extends V> m)从指定映射中将所有映射关系复制到此映射中(可选操作)。
void clear()从此映射中移除所有映射关系(可选操作)。
举例说明以上类和接口的常见用法:
集合接口有如下几种:
Collection接口:定义了存取一组对象的方法,其子接口Set和List分别定义了存储方式
Set接口:Set中的数据对象没有顺序且不可以重复
List接口:List中的数据对象有顺序且可以重复
Map接口定义了存储"键(key)-值(value)映射对"的方法
一 Collection接口中所定义的方法:
boolean add(E e)
确保此 collection 包含指定的元素(可选操作)。
boolean addAll(Collection<? extends E> c)
将指定 collection 中的所有元素都添加到此 collection 中(可选操作)。
void clear()
移除此 collection 中的所有元素(可选操作)。
boolean contains(Object o)
如果此 collection 包含指定的元素,则返回 true。
boolean containsAll(Collection<?> c)
如果此 collection 包含指定 collection 中的所有元素,则返回 true。
boolean equals(Object o)
比较此 collection 与指定对象是否相等。
int hashCode()
返回此 collection 的哈希码值。
boolean isEmpty()
如果此 collection 不包含元素,则返回 true。
Iterator<E> iterator()
返回在此 collection 的元素上进行迭代的迭代器。
boolean remove(Object o)
从此 collection 中移除指定元素的单个实例,如果存在的话(可选操作)。
boolean removeAll(Collection<?> c)
移除此 collection 中那些也包含在指定 collection 中的所有元素(可选操作)。
boolean retainAll(Collection<?> c)
仅保留此 collection 中那些也包含在指定 collection 的元素(可选操作)。
int size()
返回此 collection 中的元素数。
Object[] toArray()
返回包含此 collection 中所有元素的数组。
<T> T[] toArray(T[] a)
返回包含此 collection 中所有元素的数组;返回数组的运行时类型与指定数组的运行时类型相同。
二 Iterator接口
所有实现了Collection接口的容器类都有一个iterator方法用以返回一个实现了Iterator接口的对象
Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作.
Iterator接口定义了如下方法:
boolean hasNext()
如果仍有元素可以迭代,则返回 true。
E next()
返回迭代的下一个元素。
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。
下面举例说明Collection和迭代器的一些常见用法:
/** * 测试Collection接口中方法的常见用法 * 测试迭代器的简单用法 */ package com.basic.collection; import java.util.Collection; import java.util.HashSet; import java.util.Iterator; /** * @author johnston678 * * @version 2009-05-06 */ public class TestCollection { /** * @param args */ public static void main(String[] args) { Collection c = new HashSet(); c.add("hello"); //c.add(new Integer(100)); System.out.println(c.size()); c.remove("hello"); System.out.println(c); c.add("Tom"); c.add("Jack"); Iterator i = c.iterator(); while (i.hasNext()) { //next()返回值为Object类型,需要转换为相应的类型 String str = (String) i.next(); System.out.println(str); } } }
三 Set接口
Set接口是Collection的子接口,Set接口没有提供额外的方法,但实现Set接口的容器类中的元素是没有顺序的,而且不可以重复
Set容器可以与数学中的"集合"的概念相对应.JDK API中所提供的Set容器类常见的有:HashSet,TreeSet等
四 List接口
List接口是Collection的子接口,实现List接口的容器类中的元素是有顺序的,而且可以重复.List容器中的元素都对应一个整数型
的序号记载其在容器中的位置,可以根据序号存取容器中的元素.JDK API所提供的List容器类常见有:ArrayList,LinkedList等
五 Collections类
类java.util.Collections提供了在 collection 上进行操作或返回 collection 的静态方法.
常用方法:
public static <T extends Comparable<? super T>> void sort(List<T> list)根据元素的自然顺序 对指定列表按升序进行排序
public static void reverse(List<?> list)反转指定列表中元素的顺序。
public static <T> int binarySearch(List<? extends Comparable<? super T>> list,T key)使用二分搜索法搜索指定列表,以获得指定对象。
public static <T> void copy(List<? super T> dest,List<? extends T> src)将所有元素从一个列表复制到另一个列表
六 Comparable接口
public interface Comparable<T>此接口强行对实现它的每个类的对象进行整体排序
常见方法:
int compareTo(T o)比较此对象与指定对象的顺序
七 Map接口
实现Map接口的类用来存储健-值对.Map接口的实现类有HashMap和TreeMap等.Map类中存储的键-值对通过键来标识,所以键值不能重复
常用方法有:
V get(Object key)返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。
V put(K key,V value)将指定的值与此映射中的指定键关联(可选操作)。
V remove(Object key)如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。
boolean containsKey(Object key)如果此映射包含指定键的映射关系,则返回 true。
boolean containsValue(Object value)如果此映射将一个或多个键映射到指定值,则返回 true。
int size()返回此映射中的键-值映射关系数
boolean isEmpty()如果此映射未包含键-值映射关系,则返回 true。
void putAll(Map<? extends K,? extends V> m)从指定映射中将所有映射关系复制到此映射中(可选操作)。
void clear()从此映射中移除所有映射关系(可选操作)。
举例说明以上类和接口的常见用法:
/** * 测试常用集合类的用法 */ package com.basic.collection; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; /** * @author Administrator * * @version 2009-05-06 */ public class TestExample { /** * @param args */ public static void main(String[] args) { //Set接口的常见方法应用 Set s = new HashSet(); s.add("hello"); s.add("world"); s.add(new Integer(100)); s.add("hello"); //相同的元素不会被加入 System.out.println(s); //List接口的常见方法应用 List l1 = new LinkedList(); //下标从0开始 for (int i=0; i<=5; i++) { l1.add("a"+i); } l1.add(3,"a100"); l1.set(6, "a200"); l1.remove(1); //Collections类的常见方法应用 Collections.shuffle(l1); //随机排列 Collections.sort(l1); //排序 Collections.reverse(l1); //逆续 Collections.sort(l1); //排序 System.out.println(Collections.binarySearch(l1,"a2")); //折半查找,必须先对集合升序排序才可以进行折半查找 //Map接口的常见访求应用 Map m1 = new HashMap(); Map m2 = new HashMap(); m1.put("one", new Integer(1)); m1.put("two", new Integer(2)); m1.put("three", new Integer(3)); m2.put("A", new Integer(1)); m2.put("B", new Integer(2)); System.out.println(m1.size()); System.out.println(m1.containsKey("one")); System.out.println(m2.containsValue(new Integer(1))); if (m1.containsKey("two")) { int i = ((Integer) m1.get("two")).intValue(); System.out.println(i); } Map m3 = new HashMap(m1); m3.putAll(m2); System.out.println(m3); } }
发表评论
-
Java面向对象特性
2011-03-20 21:21 790Java面向对象特性 1.继承 ... -
Java多线程机制
2011-03-20 21:18 853一 线程的基本概念 线 ... -
Java代码编写的30条建议
2011-03-20 21:16 640(1) 类名首字母应该大写 ... -
文件目录打印程序
2011-03-20 21:15 768实现了一个文件目录打 ... -
一个简单的邮件收发程序
2011-03-20 21:13 1031package net.csdn.blog.johnsto ... -
JAVA简单程序
2011-03-20 21:11 705/** * 求数值在 1 - 50 之内的任意个数 ... -
开发人员常去的网站
2011-03-20 21:08 1001http://www.gotapi.com/ 语言 ... -
用Dom4j解析XML文件
2011-03-20 21:00 1397用Dom4j解析XML文件的简单实例。 package c ... -
JAVA中preparedStatement和Statement的区别?
2011-03-19 18:21 662一.代码的可读性和可维 ... -
MyEclipse8.5学习手册
2011-03-06 23:50 2294MyEclipse8.5支持Struts2.1.8.1 ... -
Java编程思想学习
2010-12-04 22:06 1194一 基础知识点 1.面向对 ... -
Java编码规范
2010-12-04 21:56 840一 命名惯例 1)类:名 ...
相关推荐
### Java集合小结 #### 一、集合的概念与重要性 集合是Java编程语言中用于存储、管理和操作数据的一种重要工具。它提供了多种数据结构来适应不同的应用场景,从而有效地提高程序开发效率。从数据结构的角度来看,...
### Java基础知识小结 #### 1.1 `getPath()`、`getAbsolutePath()`、`getCanonicalPath()`的区别 在Java中,处理文件路径时经常会用到`getPath()`、`getAbsolutePath()`以及`getCanonicalPath()`这三个方法。它们...
Java 集合框架 Java 集合框架是一个强大的框架,提供了各种集合类和接口,以方便开发者处理数据。它是 Java 语言的核心组件之一,广泛应用于各种应用程序中。 集合框架概述 集合框架是一个泛型系统,提供了一个...
### 集合小结 Collection #### Java集合概述 Java中的集合是一组对象的组合,类似于C++标准模板库中的容器。但是与C++不同的是,Java集合不仅可以存储单一类型的数据,还可以存储不同类型的对象。这使得Java集合...
实现集合可以通过实现Collection接口来完成,Collection接口是Java集合框架中的一个接口,Collection接口的实现类有ArrayList、LinkedList等。Collection接口的常用方法有add、remove、contains等。 小结 本节课...
这个“java课程小结.rar_北京理工大学JAVA课程”压缩包中包含的“课程小结”文件,很可能是教授精心编写的教学精华,旨在帮助学生巩固所学知识并为后续学习打下坚实基础。 在Java课程中,有几个核心概念和技术是必...
为了全面理解Java基础知识,本小结将按照给定的文件名,逐一解析关键知识点。 1. **Java基础知识** 这一部分通常包括Java语言的基础语法,如变量、数据类型、运算符、流程控制(if语句、switch、for、while循环等...
3. **避免在生产环境中使用System.out.println()**:在调试期间,可以使用System.out.println(),但在部署时,应替换为日志框架,如Log4j或Logback,以便记录有意义的日志信息,同时减少系统资源的消耗。 4. **参数...
### Java笔试题小结 #### 1. Java 字符串(String) **问题**: String 类的特点是什么?与 StringBuffer 的区别? **分析与解答**: `String` 类在 Java 中是不可变的,即一旦创建了一个字符串对象,其内容就不能...
例如,在使用集合框架时,我们可以声明一个`List`类型的变量,然后将其赋值为`ArrayList`、`LinkedList`等不同实现的具体实例,而无需关心具体是哪一种实现,因为所有实现都遵循相同的接口规范。 此外,多态也是...
- **Executor框架**:Java 5引入的线程池模型,提高了系统性能和管理线程的便利性。 - **ThreadPoolExecutor**:最常用的线程池实现,参数包括核心线程数、最大线程数、队列大小和拒绝策略。 - **Executors工厂...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。...这只是Java J2SE和J2EE学习中的一小部分,要成为一名出色的Java开发者,还需要不断深入学习和实践,掌握更多的高级特性、框架和最佳实践。
在Java编程语言中,`java.util....总之,`Vector`是Java集合框架的一部分,提供了一种线程安全的方式来管理动态数组。理解其特性和用法对于编写多线程Java程序至关重要,但同时也要权衡其性能和线程安全之间的平衡。
不但详细介绍了Java语言本身,而且讨论了面向对象的设计思想和编程方法、UML建模语言、图形用户界面的编程方法、网络和数据库程序的编程方法、线程的使用、Java集合框架等实用开发技术。全书以面向对象的程序设计...
Iterator迭代器是Java集合框架中的一种接口,提供了遍历集合元素的能力。通过Iterator迭代器,可以遍历ArrayList、Set、Map等各种集合类型。 1、使用迭代器遍历ArrayList集合 在Java中,ArrayList是一种常见的集合...
- **Collection接口**:这是Java集合框架的基础接口,所有的集合类都需要直接或间接地实现此接口。它提供了基本的操作方法,如添加(add)、移除(remove)、判断是否包含某些元素(contains)等。 #### 二、List接口与...
6. **本章小结**:这一章主要介绍了Java编程的基础,包括语言的面向对象特性,如何编写简单的程序,理解基本数据类型,以及如何使用数组存储和操作数据。这些都是进一步学习Java类、对象、异常处理、输入输出、集合...