您的位置:首页 > 编程语言 > Java开发

java集合框架:接口,实现类,算法

2015-07-28 10:12 453 查看

java集合框架:接口,实现类,算法

一、概述

接    口:表示集合的抽象数据类型,例如collection,list,set,map等。之所以定义多个接口,是为了以不同的

                方式操作集合对象

实现类:集合框架中的具体的实现类,例如:ArrayList,LinkedList,,HashSet,HashMap

算    法:是对实现接口的对象执行计算的方法,提供了对集合进行排序、遍历等多种算法



二、下面细分讲解(接口,实现类和算法)

      接口:

                collection 接口存储一组不唯一,无序的对象

                List 接口存储一组不唯一,有序(插入顺序)的对象

                Set 接口存储一组唯一,无序的对象

                Map 接口存储一组键值对象,提供key(键)到value(值)的映射
      实现类:

                ``````collection接口不赘述,此处省略n多个字。

           
(1)常用的List接口实现类有ArrayList 和LinkedList 两个。且都可以容纳所有类型的对象,


                      包括null,允许 重复,并且都保证元素的存储循序

              1、ArrayList 实现了长度可变的数组,在内存中分配连续的空间.so遍历元素和随机访问元素的效率比较高

                    Booleanadd(Object o) 说明:在列表末尾顺序添加元素,起始索引位置从0开始

                    Object get(int index) 说明:返回指定索引位置处的元素,取出的是Object类型,使用时强制类型转换

                     int size() 说明:返回列表中元素个数

                     实例:(此处的实体类复用在LinkedList实例中)

                             

//实体类开始
public class NewTitle{
private int id;
private String titleName;
private String creater;
public NewTitle(){
}
public NewTitle(int id,String titleName,String creater){
this,.id=id;
this.titleName=titleName;
this.creater=creater;
}
Public int getId(){
Return id;
}
Public void setId(int id){
this.id=id;
}
Public String getTitleName(){
return titleName;
}
Public void setTitleName(String titleName){
this.titleName=titleName;
}
Public String getCreater(){
return creater;
}
Public void setCreater(){
this.creater=creater;
}
}
//实体类结束


//主函数
Public class NewTitle{
Public static void main(String[] args){
NewTitle car =new NewTitle(1,”汽车”,”管理员”);
NewTitle test =new NewTitle(1,”高考”,”管理员”);
List newsTitleList=new ArrayList();
newsTitleList.add(car);
newsTitleList.add(test);
system.out.println(“新闻标题的数目为:”+newsTitleList.size()+”条”);
for(int i=0;i<newsTitleList.size();i++){
NewTitle title=(NewsTitle)newsTilteList.get(i);
system.out.println ((i+1)+”:”+title.getTitleName());
};
}

}


               2、LinkedList 采用链表式存储方式。插入、删除元素时效率比较高

                     void addFirst(Object o) 说明:在列表的首部添加元素

                     void addLast(Object o) 说明:在列表的末尾添加元素

                    Object getFirst() 说明:返回列表的第一个元素

                    Object getLast() 说明:返回列表中的最后一个元素

                    Object removeFirst() 说明:删除并返回列表中的第一个元素

                    Object removeLast() 说明:删除并返回列表中的最后一个元素

                    实例:(先加上ArrayList中的实体类,再加上下面的主函数)

                               

Public class NewTitleDemo{
Public static void main(String[] args){
NewTitle car =new NewTitle(1,”汽车”,”管理员”);
NewTitle test =new NewTitle(1,”高考”,”管理员”);
LinkedList  newsTitleList=new LinkedList();
newsTitleList.addFirst(car);
newsTitleList,.addLast(test);
NewsTitle first= (NewTitle) newsTitleList.getFirst();
NewsTitle last= (NewTitle) newsTitleList.getLast();;
newsTitleList.removeLast();

for(int i=0;i<newsTitleList.size();i++){}
NewTitle title=(NewTitle)newsTitleList.get(i);
system.out.println ((i+1)+”title.getTitleName()”);
}
}
  

              [b](2)Set接口存储一组唯一,无序的对象、  特点
 :集合中的对象,并不按照特定的方式排序,[/b]

                        并且不能保存重复的对象

                          HashSet是Set接口的常用实现类。而set接口继承collection接口,同时没有添加新的方法,所以在

                 使用上与List接口的实现类使用方法一致。但是,Set方法中,不存在get
4000
方法,即没有List接口中通


                 过索引取值的方法,进而,有一个问题:没有get方法,Set集合,要怎么遍历输出呢 ???

                 ————迭代器,Iterator接口,Iterator接口:表示对集合进行迭代的的迭代器

                          

                         hasNext():方法判断是否还有元素可以迭代。

                         Next():返回迭代的下一个元素。

                         集合对象.iterrator();

//只修改主函数中的部分代码
NewTitle car =new NewTitle(1,”汽车”,”管理员”);
NewTitle test =new NewTitle(1,”高考”,”管理员”);
Set  newsTitleSet=new  HashSet();
newsTitleSet.add(car);
newsTitleSet.add(test);
system.out.println (“新闻标题为”+newsTitleSet.size()+”条”);

Iterater iterator=newTitleSet.iterator();
While(iterater.hasNext()){
NewTitle title=(NetTitle)iterator.next();
system.out.println (title.getTitleName());
}


               (3)Map接口

                                   Map接口表示一组成对的键值映射对象,保存一个键到一个值的映射,通过键操作值,

                          Map接口最常用的实现类是HashMap,,(自己感觉,这个键key,相当于数据库的数据编号,唯

                          一名字,但是可以包含一个杂数据类型的对象)                              

                                  Object put(Object key,Object value);

                                  Objectget(Object key);

                                  Boolean containsKey(Object key);
                          

//只修改主函数的部分源代码
Student student1=new Student(“黎明”,”男”);
Student student2=new Student(“刘丽”,”女”);
Map studentMap=new HashMap();
studentMap.put(‘jack’,student1);
studentMap.put(‘rose,student2);
sysout(‘打印键集:’+studentMap.keySet());
sysout(‘打印值集:’+studentMap.values());
sysout(‘打印键值集:’+studentMap);

String key=”jack”;
If(studentMap.containsKey(key)){
Student student=(Student)studentMap.get(key);
Sysout(“学员的姓名:”+student.getName());
}


               算法(对集合操作的算法): 

                        Java集合框架将针对不同数据结构算法的实现都保存在工具类中utilites:Collections

               和Arrays,,,,Arrays定义了用来操作数组的各种方法,,,Collections类定义了一系列用于操作

               集合的工具方法,也就是说,不必实例化Collections类就可以使用的方法

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