Java集合的阐述

集合

为了程序操作存储不固定的数据,可以用到JDK工具中的集合类,位于Java.util包中

分为双列集合Map,单列集合Collection

集合总体图鉴

 

Collection 接口
Collection 类是一个接口,定义了集合中最基本的常用方法。

接口中的主要方法:


1.   boolean add(E e);        增加元素

2.   boolean remove(Object obj); 删除元素

3.   boolean contains(Object obj); 包含

4.   boolean is Empty(); 是否有元素,空为true,非空是false

5.   void clear(); 清空集合中的元素

数组清空 != null;元素虽然清空。但是数组空间还在

6.   int size(); 集合中元素的个数

7.   Object[] toArray(); 把集合转换成数组

8.   Iterator<E> iterator();        获取迭代器对象
 

增强for循环:
使用增强for循环,进行遍历集合

语法:for(数据类型   变量名:要遍历的集合名字){
}

Iterator<E>接口
 方法:

E next();        获取元素

boolean hasNext();        判断是否是下一个元素;有元素---true;无元素---false。

注意事项:

a.  通过迭代器遍历集合的时候,不能通过“集合对象”进行增删操作

b.  迭代器有一个删除方法,可以通过迭代器的删除方法进行删除---void remove(); 获取谁,删除谁

单列集合:

常用实现类 LinkedList 的成员方法
1.  void addFirst(E e);   --     把元素添加到头部

2.   void addLast(E e);   --     把元素添加到尾部

3.    E getFirst();   --     获取头部位置的元素

4.    E getLast();   --     获取尾部位置的元素

5.    E removeFirst();    --    删除头部位置元素

6.    E removeLast();   --     删除尾部位置元素

List接口下和索引值方法
1.    E get(int index);    --    获取元素

2.    E remove(int index);   --     根据索引值删除元素

3.    void add(int index,E e);    --    把元素添加到对应索引值位置

4.    E set(int index,E e);  --     替换对应索引值位置的元素,返回被替换的元素

5.    int indexOf(Object obj);   --  获取参数在集合中的索引值位置,如果元素不存在,则返回 -1

6.   int lastIndexOf(Object obj);    --    获取参数在集合中最后一次出现的索引值位置,如果元素不存在,则返回 -1

7.   List<E>sublist(int beginIndex,int endIndex);    --    截取
 

set接口
set接口没有在 Collection 的基础上扩展功能,Collection的方法就是set方法

实现类
HashSet        去除重复

LinkedHashSet        不能重复,保证顺序

TreeSet<E>        可排序

①TreeSet的泛型必须是Comparable 类型,如果不是该类型,则新增会抛出 classCastException

②如果泛型不是Comparable类型,则需要在TreeSet的构造器中传入一个Comparator类型的对象

TreeSet 新增元素的时候,泛型必须是Comparable类型

构造方法:

public TreeSet();

public TreeSet(comparator<E>C);

Comparable<T>接口

public int compareTo(E,e);

Comparator<E>接口 

int compare(T t1,T t2);
 

以及升序降序使用规则:

升序        ---        当前对象—参数对象 

降序        ---        参数对象—当前对象

双列集合:

常用方法:

如果k存在,新v替换旧v,返回被替换的旧v

如果k不存在,则返回null

1.     V put(K k,V v);    --    新增方法

2.     V remove(Object key);    --    根据key删除整个键值对,返回对应的value,如果k不存在,则返回null

3.      V get(Object key);    --    根据key获取v,如果key不存在,则返回null;

4.      boolean isEmpty();    --    判断集合是否为空,为空返回true,不为空返回false

5.      void clear();   --     清空集合中的元素

6.      boolean containsKey(Object key);   --     判断是否包含key

7 .     boolean containsValue(Object value);    --    判断是否包含value

8 .     set<K>keySet();   --     获取所有的key

9 .     set<Entry<K,V>> entrySet();    --    获取所有的entry

10.     Collections<V>values();   --     获取所有的value

11.     int size();   --     元素个数
 

遍历集合Map方法:

方法1:

a.  获取所有的key,keySet();返回值Set<K>  

b.   遍历Set集合,泛型是k

c.   获取一个k,根据k获取v

方法2:

a.   获取所有的Entry,Set<Entry<k,v>>

b.   遍历Set集合,泛型是Entry

c.    entry.getKey()、entry.getValue();

数组图:

 双向链表:

 

树的各种形态:

数据结构图:

 

队列图:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值