现在的位置: 首页 > 综合 > 正文

使用集合存储对象

2013年02月22日 ⁄ 综合 ⁄ 共 3022字 ⁄ 字号 评论关闭

1、  为什么需要集合框架。

如果写程序时并不知道程序运行时会需要多少对象,或者,需要更复杂的方式存储对象,可以考虑使用JAVA集合框架。

2、  JAVA集合框架由以下三部分组成。

2.1、接口

    Collection是最基本的集合接口,一个Collection代表一组元素。

List接口继承自CollectionList是有序集合,充许有相同的元素,使用List能够精确地控制每个元素插入的位置,用户能够使用索引来访问List中的元素,类似于数组。

2.2、具体类

实现List的常用类有ArrayListLinkedList。它们都可以容纳所有类型的对象,包括null,并且都保证元素的存储顺序。

ArrayList实现了可变大小的数组。它的优点在于遍历元素和随机访问元素的效率比较高。

LinkedList提供了额外的addFirst()addLast()removeFirst()removeLast()等方法,可以在LinkedList的或尾部进行插入或者删除操作。LinkedList采用双向列表存储数据。相较于ArrayList,在插入或删除元素时,LinkedList提供更好的性能。这些方法使得LinkedList可以被用作堆栈(stack)或者队列(queue)。

HashMapMap接口的实现类,实现一个键到值映射的哈希表。

2.3JAVA集合框架提供了类Collections,它提供了对集合进行排序等多种算法实现。

3List接口和ArrayList

List接口中常用方法

返回类型

方 法

说 明

boolean

add(Object o)

在列表的末尾顺序添加元素,起始索引位置从0开始。

int

size()

返回列表中的元素个数。

Object

get(int index)

返回指定索引位置处的元素

注意:取出的元素是Object类型,使用前需要进行强类型转换。

void

add(int index,Object o)

在指定的索引位置添加元素。注意:索引位置必须介于0和列表中元素个数之间。

boolean

contains(Object o)

判断列表中是否存在指定元素

boolean

remove(Object o)

从列表中删除元素

 

4、  List接口和LinkedList

LinkedList中的一些方法

返回类型

方 法

说明

void

addFirst(Object o)

在列表的首部添加元素

void

addLast(Object o)

在列表的末尾添加元素

Object

getFirst()

返回列表中的第一个元素

Object

getLast()

返回列表中的最后一个元素

Object

removeFirst()

删除并返回列表中的第一个元素

Object

removeLast()

删除并返回列表中的最后一个元素

 

5、  Map接口和HashMap接口

HashMap的常用方法

返回类型

方法

说明

Object

put(Object key,Object value)

以“键-值对”的方式进行存储。键必须是唯一的,值可以重复。如果试图添加重复的键,那么最后加入的键-值对将替换掉原先的键-值对。

Set

keySet()

返回键的集合。

Collection

values()

返回值的集合。

boolean

containsKey(Object key)

如果存在由指定的键映射的“键-值对”,返回true

Object

get(Object key)

根据键返回相关联的值,如果不存在指定的键,返回null

Object

Remove(Object key)

删除由指定的键映射的“键-值对”。

 

6、  toString()方法。

每个类都有toString()方法,从Object类继承而来,toString()方法代表一个类的字符串描述。当执行语句“System.out.println(类对象)”时,会默认调用该类的toString()方法。由于Object中的toString()方法用来输出类的内存地址等信息,因此,有时候为了特殊需要可以重写toString()方法,以便返回需要的内容。

 

-------------------------------------------------------------------------------

7、  例子代码

ArrayList:

 

package com.xinxin.testCollection;

 

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

 

public class ArrayListTest {

 

public static void main(String[] args) {

    

     FirstLevelTitle ft1 = new FirstLevelTitle(1,"待业","新新",new Date());

     FirstLevelTitle ft2 = new FirstLevelTitle(2,"就业","B",new Date());

     FirstLevelTitle ft3 = new FirstLevelTitle(3,"已就业","超哥",new Date());

    

     //List接口的实现类ArrayList

     List newsTitleList = new ArrayList();

     //向集合中添加元素

     newsTitleList.add(ft1);

     newsTitleList.add(ft2);

     newsTitleList.add(1,ft3);

    

     print(newsTitleList);

    

     //判断集合中是否存在指定的元素ft3

     if(newsTitleList.contains(ft3)){

         System.out.println("包括已就业");

     }else{

         System.out.println("不包括已就业");

     }

    

     System.out.println("删除前、新闻标题数目为:"+newsTitleList.size());

     //删除集合中的元素

     newsTitleList.remove(0);

     System.out.println("删除之后、新闻标题数目为:"+newsTitleList.size());

}

 

private static void print(List newsTitleList) {

    

     for(int i=0;i<newsTitleList.size();i++){

         FirstLevelTitle title = (FirstLevelTitle)newsTitleList.get(i);

         System.out.println(i+1+"/nID"+title.getId());

         System.out.print("名称:"+title.getTitleName());

         System.out.print("创建者:"+title.getCretor());

         System.out.print("创建时间::"+title.getCreateTime()+"/n");

        

     }

抱歉!评论已关闭.