Java集合框架的一些总结

来源:互联网 发布:java获取浏览器类型 编辑:程序博客网 时间:2024/05/21 14:06

集合框架

  1.  集合的相关概念 : 集合(Collection),即容器(Container),是用来存放数据的盒子。Java中提供了很多的集合类。Java容器类的作用是用来“保存对象”,是可变长的对象数组。其可分为两种类型。(1)Collection(称为集合):一个独立元素的序列。(2)Map(称为映射表或图):一组成对的“键/值”对象。
补充:Java集合框架中常用的Collection有三种:Set(规则集)、List(线性表)和Queue(队列)。Set的实例用于存储一组不重复的元素,List的示例用于存储一个有 元素构成的有序集合,而Queue的实例用于存储使用先进先出方式处理的对象。
集合的特点 :(1)集合可以存放不同类型的变量  (2)集合类中容纳的元素都是Object类型,一旦把一个对象置入集合类中,它的类信息将丢失(3)集合类的大小可改变。

  1. 集合的一些基本操作: (声明:建议具体操作时查API后再使用)

(1)创建List集合对象   List names=new ArrayList();

(2)往集合中添加数据(使用add方法)  names.add(“张三”) ;

(3)获取集合大小(使用size方法) System.out.println(“集合大小为:”+names.size());

(4)删除数据(使用remove方法)  names.remove(1); //删除2条数据

(5)修改数据(使用set方法) names.set(2,”赵七”); //修改第3条数据

(6)获取数据(使用get方法) //获取第3条数据      System.out.println(“第3条数据为:”+names.get(2));

(7)遍历集合元素  通过集合获取迭代器对象: Iterator it = c.iterator();    遍历集合: while(it.hasnext()){ String s = (String)it.next()  System.out.println(s);  } (这里事实上用for循环效率更高)

 集合的一般使用步骤

A.     创建集合对象

B.      创建元素对象

C.      将元素对象存储到集合中

D.     遍历集合

a)      通过集合获取迭代器对象

b)     通过迭代器对象hasNext() 方法来判断是否还有元素

c)      通过next() 方法来获取元素,并移到下一个位置。

5. List集合的特有功能(具体使用时,先查API再使用,ArrayList)

1.      添加功能:void add(int index,object element) : 在指定位置添加元素

2.      获取功能:Object get(int index): 获取指定位置的元素

3.      列表迭代器  ListIterator listIterator():list集合特有的迭代器

4.      删除功能  Object remove(int index) : 根据索引删除元素,返回被删除的元素

5.      修改功能  Object set(int index,Objectelement):根据索引修改元素,返回被修改的元素

6  并发修改异常 :迭代器遍历元素的时候,是不能通过集合修改元素的。

解决方案一;迭代器迭代元素,迭代器修改元素

       //使用迭代器遍历元素,

              ListIterator list= li.listIterator();

              while(list.hasNext()){

                     if("world".equals(list.next()))

                     {

                            list.add("javaee");

                     }

              }

              System.out.println(li);

解决方案二 : 使用集合遍历,使用集合修改

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

                     String s =(String)li.get(i);

                     if("world".equals(s)){

                            li.add("javaee");

                     }

              }

              System.out.println(li);

7. List三个子类的特点:

数组的特点是查询快,增删慢;链表的特点是查询慢,增删快;栈的特点是先进后出;队列的特点是先进先出。

ArrayList:底层数据结构是数组,查询快,增删慢。线程不安全,效率高。

Vector:底层数据结构是数组,查询快,增删慢。线程安全,效率低。

LinkedList :底层是链表,查询慢,增删快,线程不安全,效率高。

Map接口

Map中每项都是成对出现的,它提供了一组键值的映射。其中存储的每个对象都有一个相应的关键字(key),关键字决定了对象在Map中的存储位置。关键字应该是唯一的,每个key只能映射一个value。

     用put(Objectkey,Objectvalue)方法即可将一个键与一个值对象相关联。用get(Objectkey)可得到与此key对象所对应的值对象。

Map常用操作举例:
o(1)创建Map集合对象

                Map person=new HashMap();

o(2)往集合中添加/修改数据(使用put方法)

                 person.put(“姓名”,“张三”);

p(3)获取集合大小(使用size方法)

       System.out.println(“集合大小为:”+person.size());

p(4)删除数据(使用remove方法)

                 person.remove(“身高”); //删除”身高”的数据

p(5)获取数据(使用get方法)

                 //获取“爱好”数据                

       System.out.println(“爱好为:”+ person.get(“爱好”));
p(6)遍历集合所有数据

              遍历Map的方法大约有3种,这里采用“迭代器”方式遍历。

     Iteratorit =person.entrySet().iterator();           

     while(it.hasNext()){

              Map.Entry m=(Map.Entry)it.next();

          System.out.println("键:"+ m.getKey() + ",值:"+ m.getValue());

      }



原创粉丝点击