java中集合的概念及常用方法

1.集合的概念

  • 我们在存储各种数据的时候,可以使用八大基本数据类型,又或者是数组和链表,但是因为各种原因(数组存储的时候不能自动扩容,数组只能存储单一数据类型)的干扰,让程序员很是苦恼,于是就衍生出了现在的集合
  • 集合不是指某一个数据类型,集合是由各种接口,抽象类和具体类实现的,都位于java.util包中.

2.集合的组成

  1. 集合分为单列(Collection)和双列(Map),首先我们来看一下Collection接口:
  • Collection中有着List接口和Set接口   (二者的区别是list接口中的数据对象可以重复,但是Set接口中的数据对象不可以重复).

     2.1List接口

  •   其中list接口中有着三个具体类:ArrayList,LinkList,Vector,其中ArrayList和Vector都是采用数组的方法来进行存储的,但是Vector添加了同步锁,为单线程,相较于ArrayList来说更加安全.而LinkList是以链表为基础来进行存储的.
  • 他们各自具有各自的优缺点,对于ArrayList和Vector来说,由于数组的特性,它查找和遍历的效率是远大于LinkList的,但是相对他们的插入和删除操作效率要小于LinkList.
  • 在ArrayList中常用方法有:
  • add(E element)   向集合的尾部添加元素
  • add(int index,E element)   向集合的该索引处添加元素
  • get(int index)    获得集合中该索引处的元素
  • indexOf(Object o)   获得该元素第一次出现时的索引
  • lastIndexOf(Object o)  获得该元素最后一次出现时的索引
  • remove(int index)   删除该索引处的元素并且返回被删除的元素
  • set(int index,E element)   修改集合中该索引处的元素
  • 在Linklist中常用方法有:
  • add(int index,Object element)  向链表的索引处添加元素
  • addFirst(Object element)  向链表的表头处添加元素
  • addLast(Object element)  向链表的表尾处添加元素
  • get(int index)  获得链表该索引处的元素
  • getFirst()  得到首元元素
  • getLast()   得到尾元素
  • remove(int index)   删除索引处的元素
  • removeFirst()  删除头部元素
  • removeLast()  删除尾部元素
  • 在List接口中的遍历方法
  • for循环遍历
  • 增强for循环遍历
  • 迭代器遍历
ArrayList<String> array=new ArrayList<>();
//迭代器循环
Iterator<String> it=array.iterator();
while(it.hasNext){
    String s=it.next();
    System.out.println(array);
}

  3.Set接口

  • Set接口中所有元素都不重复,但是是无序的,Set中的元素没有索引.
  • Set接口中有着HashSet和TreeSet之间的区别是HashSet不能进行排序,但是TreeSet可以进行排序,但是必须实现Comparable接口.
  • HashSet的常见方法
    • add(Object element);  向HashSet中添加元素
    • contains(Object element);   判断HashSet中有没有这个元素
    • clear();   清空HashSet中的所有元素
    • remove(Object element);   删除HashSet中的这个元素
  • TreeSet的常见方法
    • add(Object element);  向TreeSet中添加元素
    • first();   返回集合的第一个元素
    • last();   返回集合的最后一个元素
    • Higher(Object element);   返回大于指定元素的最小元素
    • lower(Object elemen);   返回小于指定元素的最大元素

   2.2Map接口

  • Map接口的实现类分别是HashMap和TreeMap,二者储存的方法都是通过键值对来进行存储且key值不能够重复,二者的区别是HashMap排序顺序不固定,但是TreeMap通过某种排序使得集合有迹可循,HashTable则是可以实现单线程同步,但是不能存储null值.

  • HashMap和TreeMap中的常见方法

    • put(K key,V value);   向Map中添加键值对

    • remove(Object key);   通过键值来删除Map中的元素

    • Set<K>  keySet();   返回Map中的键

    • Set<Map.Entry<K,V>> entry();   返回Map中键对应的元素

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值