Java集合类

1,集合类

      包含:set、list、map、queue四大体系。其中set代表无序、不可重复的集合;list代表有序、可重复的集合。map代表具有映射关系的集合;queue代表队列集合。

      Java集合类与数组的区别:Java的集合类的长度是动态的,数组则是固定长度的。

     List、Set、Map接口及各实现类的特性

接口

特性

实现类

实现类特性

成员要求

List

线性、有序的存储容器,可通过索引访问元素

ArrayList

数组实现。非同步。

 

Vector

类似ArrayList,同步。

 

LinkedList

双向链表。非同步。

 

Map

保存键值对成员

HashMap

基于哈希表的 Map 接口的实现,满足通用需求

任意Object对象,如果修改了equals方法,需同时修改hashCode方法

TreeMap

默认根据自然顺序进行排序,或者根据创建映射时提供的 Comparator进行排序

键成员要求实现caparable接口,或者使用Comparator构造TreeMap。键成员一般为同一类型。

LinkedHashMap

类似于HashMap,但迭代遍历时取得“键值对”的顺序是其插入顺序或者最近最少使用的次序

与HashMap相同

IdentityHashMap

使用==取代equals()对“键值”进行比较的散列映射

成员通过==判断是否相等

WeakHashMap

弱键映射,允许释放映射所指向的对象

 

ConcurrentHashMap

线性安全的Map

 

Set

成员不能重复

HashSet

为快速查找设计的Set

元素必须定义hashCode()

TreeSet

保持次序的Set,底层为树结构

元素必须实现Comparable接口

LinkedHashSet

内部使用链表维护元素的顺序(插入的次序)

元素必须定义hashCode()

2,List

      特有方法:

      (1)增加

void add(int index, E element):在列表的指定位置插入指定元素(可选操作)。

boolean addAll(int index, Collection<? extends E> c):将指定 collection中的所有元素都插入到列表中的指定位置(可选操作)。

      (2)删除

boolean remove(Object o):从此列表中移除第一次出现的指定元素(如果存在)(可选操作)。

      (3)修改

E set(int index, E element):用指定元素替换列表中指定位置的元素(可选操作)。

      (4)查询

E get(int index):返回列表中指定位置的元素。

List<E> subList(int fromIndex, int toIndex):返回列表中指定的fromIndex(包括 )和toIndex(不包括)之间的部分视图。

ListIterator<E> listIterator():返回此列表元素的列表迭代器(按适当顺序)。

      List集合特有迭代器:ListIteratorIterator的子接口。在迭代时,不可以通过集合对象的方法操作集合中的元素,因为会发生ConcurrentModificationException异常。所以,在迭代时,只能用迭代器的放过操作元素,可是Iterator方法是有限的,只能对元素进行判断,取出和删除的操作。如果想要其他的操作如添加、修改等,就需要使用其子接口ListIterator,该接口只能通过List集合的ListIterator方法获取。

运行示例:

public static void main(String[] args) {
  ArrayList al = new ArrayList();

  al.add("java0");
  al.add("java1");
  al.add("java2");
  al.add("java3");
  sop("原集合是:"+al);
  //演示列表迭代器
  ListIterator li = al.listIterator();
  while(li.hasNext()){
   Object o = li.next();
   if(o.equals("java2"))
    li.set("java5");
  }
  sop("修改后集合是:"+al);
 }

public static void sop(Object obj){
  System.out.println(obj);
 }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值