对集合框架的一些概括总结之collection接口 子接口 子实现类

                      -------android培训java培训、期待与您交流! --------

   

                我发现集合框架就是方法多了点 乱了点  整理一下还是感觉挺简单的 

              1.  先聊一聊为什么出现集合类吧
                           因为呢面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。

               2.  数组也是用来存储的容器那么它跟集合有什么区别呢 ?

                               数组虽然能储存对象, 但是它的长度是固定的 而集合的长度是可以改变的    数组可以存放基本数据类型也可以存放对象   而集合呢只可以放对象

                3.总结一下集合的特点吧                    

                             集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
                 4.  集合类中的关系图 如下:

 

其实我们可以给他们拆分成两大块的

 

   5.一个是collection接口里面主要包括list和set两个子接口其中list接口下面有两个经常用的实现类LinkedList    和ArrayList

      * 因为collection是接口所以只能通过子类来实现的

      * list可存放重复元素,元素存取是有序的里面存放的数据都是有序的 因为底层数据结构是数组其中链表     底      层也是数组

     *set不可以存放重复元素,元素存取是无序的(你手写的存入与打印出来的可能不一样 它是根据hash值进行存储的)

     * 因为Collection这个接口继承了Iterable<E>这个接口所以实现Collection接口的集合取出元素的方式都是  iterator()  //返回在此 collection 的元素上进行迭代的迭代器。而这个迭代器是Iterable但是因为接口没有构造所以返回的是它的子类对象

/*
 * Iterator的使用:
 *  
 * Collection中的iterator()返回的是一个Iterator.
 *   记住:返回的其实是一个迭代器的子类对象.但是,你可以用Iterator这个接口来接收这个子类对象.多态.
 *
 * Iterator:
 * 1:boolean hasNext()
           如果仍有元素可以迭代,则返回 true。
   2:Object next()
           返回迭代的下一个元素。
           
   NoSuchElementException 你已经取到最后一个元素了.你还继续取元素,就会抛出该异常.
 */

List除了实现collection接口的方法外 它还有特有的方法:
 
   void add(int index ,E element)               *  在列表的指定位置添加指定的元素                   

   object get(int index)                      * 返回列表中指定位置的元素
 
   int indextOf(object)                      *  返回指定元素第一次出现的索引

   ListIterator<E> listIterator()               *  列表迭代器  它可以逆向遍历集合                 

   object remove(int index)                     *  移除列表中指定的位置元素 

   List subList(int fromIndex, int toIndex)     *  返回列表中指定的fromIndex(包括 )
         和toIndex(不包括)之间的部分视图。
         按照起始和结束索引截取了一个子List
         用List接收(截取的时候是左闭右开)

其中ArrayList和LinkedLis 是List的两个最常用的实现子类


   ArrayList   数据结构是数组  线程不安全  查询速度快
   LinkedList    数据结构是链表  线程不安全  增删速度快
   **这两个效率比较高因为线程不安全**
   Vector        数据结构是数组 线程安全 增删速度快
(被ArrayList取代)

 

 ***************随便写的一个遍历集合的小例子*************

package collection.jihe;

import java.util.ArrayList;
import java.util.Iterator;

public class ListDemo {

	/**
	 * 遍历ArrayList集合
	 */
	public static void main(String[] args) {
		Student  s=new Student();//自定义类
		ArrayList arr=new  ArrayList();
		s.setName("ZhangSan");
		s.setAge(20);
		Student  s1=new Student();
		s1.setName("lisi");
		s1.setAge(23);
		arr.add(s);//讲自定义对象放入集合
		arr.add(s1);
		Iterator<Student> it=arr.iterator();//获取迭代器   用于取出集合中的元素
		while (it.hasNext()) {//迭代取值的过程
			
		Student ss=it.next();
		System.out.println(ss.getName()+"          "+ss.getAge());
			
		}
		
	}

}


 

--------- android培训java培训、期待与您交流! ----------

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值