Collection接口
集合中存储的只是对象的引用,不是对象本身。

1.ArrayList<E>类
1.1ArrayList和Collection的关系
  public interface List<E>extends Collection<E>
  public class ArrayList<E> implements List<E>

1.2构造方法
   ArrayList() 构造一个初始容量为 10 的空列表。
   ArrayList(Collection<? extends E> c)构造一个包含指定 collection 的元素的列表,这些元素是按照

该 collection 的迭代器返回它们的顺序排列的。
   ArrayList(int initialCapacity)构造一个具有指定初始容量的空列表。

1.3基本方法
  boolean add(E e)将指定元素添加到列表尾部
  boolean addAll(Collection<? extends E> c) 将另一个集合中的元素全部添加到ArrayList中,允许重复

元素
  public boolean removeAll(Collection<?> c) 求补集A-B(从java.util.AbstractCollection 继承)
  void add(int index, E element)将指定元素插入指定位置
  void clear()移除所有元素
  boolean contain是(Object o)列表中如果包含该元素,返回true
  int indexOf(Object o)返回列表中首次出现指定元素的索引,不含该元素则返回-1
  boolean isEmpty() 列表为空,返回true
  E remove(int index)移除指定位置元素
  int size()返回元素数
  Object[] toArray()返回所有元素的数组
  <T> T[] toArray(T[] a)
(PS:集合可以直接打印输出)

2.迭代器Iterator
2.1 Collection中的iterator方法
  Iterator<E> iterator()返回在此 collection 的元素上进行迭代的迭代器。
2.2 Itetrator<E>接口
  boolean hasNext()仍有元素可以迭代,返回true
  E next() 返回迭代的下一个元素
  void remove()从迭代器指向的 collection 中移除迭代器返回的最后一个元素

 /*
 *利用Iterator遍历集合,假设集合coll中存放的都是String对象
 */
 Iterator it = coll.iterator();
 while(it.hasNext()){
     String s = (String)it.next();
     System.out.println(s);
 }

 //注意:在迭代的过程不能通过集合remove集合中的元素,否则会抛出
 java.util.ConcurrentModificationException并发修改异常,只能通过迭代器Iterator的remove方法移除当前迭代器指向的对象
 Iterator it = coll.iterator();
 while(it.hasNext()){
     String s = (String)it.next();
     if(s.equals("111")){
         coll.remove(s);    //这样不行,得改成it.remove()
     }
 }

Java学习日记-11 集合(1)的更多相关文章

  1. Java学习日记-10 集合

    集合(Collection) 1. 什么是集合? 集合是一组对象组成的一个整体,又称为容器,集合类属于java.util包.集合不同于数组的地方在于,一是它的容量是可变的,二是集合中只能存储对象,不能 ...

  2. Java学习日记-12 集合(2)

    一.List<E>接口(超级接口Collection,List比Collection多重载了一些索引作为形参的方法)1.实现类ArrayList\LinkedListArrayList顺序 ...

  3. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

  4. 【原】Java学习笔记026 - 集合

    package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:从三国演义中 ...

  5. Java学习笔记之集合

    集合(Collection)(掌握) (1)集合的由来? 我们学习的是Java -- 面向对象 -- 操作很多对象 -- 存储 -- 容器(数组和StringBuffer) -- 数组而数组的长度固定 ...

  6. java学习笔记之集合家族2

    集合体系 一.数据结构 List集合储存数据结构 <1>堆栈结构 特点:先进后出 <2>队列结构 特点:先进先出 <3>数组结构 特点:查询快,增删慢 <4& ...

  7. Java 学习(11): 面向对象编程—继承(super,this)

    Java 继承 what: 继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为.子类从它的父类中继承可访问的数据域和方法,也 ...

  8. Java学习日记 集合

    一.接口Map<K,V>1.V put(K key, V value)2.int size()3.public class HashMap<K, V> implements M ...

  9. Java学习日记基础篇(九) —— 集合框架,泛型,异常

    集合框架 有事我们会需要一个能够动态的调整大小的数组,比如说要添加新员工但是数组已经满了,并且数组的大小是在定义的时候定死的,所以我们就需要一个能够动态调整大小的数组或者用链表解决,而java中提供了 ...

随机推荐

  1. Python爬虫:获取糗事百科笑话

    为了收集笑话也是挺拼的,我就不相信你所有的都看过了.还有,请问哪位仁兄能指点之下怎么把网上抓取到的图片写到word里面,捉摸了好久都没弄出来.   糗百不需要登录,html直接解析,只要在reques ...

  2. Linux: FTP服务原理及vsfptd的安装、配置

    1.FTP 服务的安装# yum install -y vsftpd [root@rusky pub]# ls -l /etc/vsftpd/ total 20 -rw-------. 1 root ...

  3. Linux基础系列—Linux体系结构和Linux内核结构

    /** ****************************************************************************** * @author    暴走的小 ...

  4. codevs 1994 排队 排列组合+高精度

    /* 数学题0.0 最后答案:A(n,n)*A(n+1,2)*A(n+3,m)+A(n,n)*C(m,1)*A(2,2)*C(n+1,1)*A(n+2,m-1); 简单解释一下 +之前的很显然 先排男 ...

  5. Django runserver show client ip

    get path of basehttp.py $ python >>> import site >>> site.getsitepackages() ['/usr ...

  6. JS加入收藏与设置主页

    收藏: <a href="javascript:void(0)" onclick="shoucang(document.title,window.location) ...

  7. 通知(Notification)的使用

    新建一个 NotificationTest项目,并修改 activity_main.xml 中的代码,如下所示:<LinearLayout xmlns:android="http:// ...

  8. 【BZOJ1901】Dynamic Rankings

    Description 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是 ...

  9. 【USACO 2.3.1】最长前缀

    [题目描述] 在生物学中,一些生物的结构是用包含其要素的大写字母序列来表示的.生物学家对于把长的序列分解成较短的序列(即元素)很感兴趣. 如果一个集合 P 中的元素可以通过串联(元素可以重复使用,相当 ...

  10. MVC3中 ViewBag、ViewData和TempData的使用和区别(转发:汴蓝)

    MVC3中 ViewBag.ViewData和TempData的使用和区别   在MVC3开始,视图数据可以通过ViewBag属性访问,在MVC2中则是使用ViewData.MVC3中保留了ViewD ...