美文网首页
JAVA集合------萌新学习之路,Iterator、fore

JAVA集合------萌新学习之路,Iterator、fore

作者: 小白白又白 | 来源:发表于2017-03-10 12:03 被阅读0次

Java集合大致分为三类:set、map、list(queue,JDK1.5之后新增,dictionary过时类似map键值对存储形式)

使用时引入 java.util

set: 无序不可重复集合

map:具有映射关系的集合

list:有序,可重复的集合

集合示意图

Paste_Image.png

Java的集合类主要由Java集合框架的根接口collection、map派生而来

Paste_Image.png

常用的collection和iterator接口

接口 描述
boolean add(Object o) 该方法用于向集合里添加一个元素,如果添加成功返回true
boolean addAll(Collection c) 该方法把集合c的所有元素添加到指定集合中,成功返回true
void clear() 清楚指定集合的所有元素,将集合长度变为0
**boolean contains(Object o) ** 返回集合是够包含指定元素
boolean containsAll(Collection c) 返回集合是否包含指定元素
boolean isEmpty() 返回集合是否为空
iterator iteraot 返回一个iterator对象用于遍历集合所有元素
boolean remove(Object o) 删除集合中的o元素,如果集合中有多个删除多个,成功返回true
boolean removeAll(Collection c) 从集合中删除集合c里包含的所有元素,相当于集合减去c集合,如果集合元素删除了一个或多个返回true
boolean retainAll(Collection c) 从集合中删除不包含c集合里不包含的元素,返回true
int size() 返回集合元素的个数
Object[] toArray() 把集合转换为一个数组,所有集合元素变成数组元素

代码示例


public static void main(String[] args) {
        Collection c = new ArrayList();
        //添加元素
        c.add("钢铁是怎样炼成的");
        //虽然Java集合不能存放基本类型,但是Java支持自动装箱
        c.add(6);
        System.out.println("c集合的元素个数是"+c.size());
        //判断是否包含指定字符串
        System.out.println("判断集合c是否包含指定的字符串"+c.contains("钢铁"));
        c.add("朝花夕拾!");
        System.out.println("c集合的元素"+c);
        //删除集合里的所有元素
        Collection books = new HashSet();
        books.add("钢铁是怎样炼成的");
        books.add("茶花女");
        System.out.println("c集合是否完全包含books集合?"+c.containsAll(books));
        //c集合的元素减去books的元素
        c.removeAll(books);
        System.out.println("移除之后c集合的元素"+c);
        //删除c集合中的所有元素
        c.clear();
        System.out.println("c集合的元素"+c);
        //books集合里值剩下c集合里也同事包含的元素
        books.retainAll(c);
        System.out.print("books里的元素"+books);

    }

}

**
ArrayList和HashMap实现类虽然不同,但是把他们当成Collection来使用时,使用 add、remove、clear等方法时完全一样
所有Collection 的实现类重写了toString()方法,该方法可以一次性输出集合的所有元素
**

使用iterator接口遍历集合元素

iterator迭代器主要用来遍历集合元素

接口方法

方法 描述
boolean hasNext() 如果被迭代的集合元素都还没有被遍历,则返回true
Object next() 返回集合里面的下一个元素
void remove() 删除集合里上一次next方法返回的元素

代码示例

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CellectionTest {
    public static void main(String[] args) {
        //创建一个集合
        Collection testCollection = new HashSet();
        //添加元素
        testCollection.add("霸王花!");
        testCollection.add("三生三世");
        testCollection.add("十里桃花");
     //   testCollection.clear();
        //获取对应的iterator
      Iterator it = testCollection.iterator();
      while(it.hasNext()){
          //it.next()返回类型是Object需要强制转换
          String str = (String)it.next();
          System.out.println(str);
          System.out.println(testCollection); 
          if(str.equals("三生三世")){
              it.remove();
          }
      }

    }

}


**
Collection中的元素不能 被改变,只有通过 Iterator的remove方法先删除next方法返回的元素,不然将会引发java.util.ConcrrentModificationException异常
**

使用foreach遍历集合元素

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
public class CellectionTest {
    public static void main(String[] args) {
        //创建一个集合
        Collection testCollection = new HashSet();
        //添加元素
        testCollection.add("十里桃花");
        testCollection.add("三生三世");
        testCollection.add("霸王花!");
     //   testCollection.clear();
        //获取对应的iterator
      System.out.println(testCollection); 
      for(Object obj: testCollection){
          String str = (String) obj;
          System.out.println(str);
          if (str.equals("三生三世")){
        //    testCollection.remove();  引发异常
          }
      }
      System.out.println(testCollection);
    }

}

相关文章

网友评论

      本文标题:JAVA集合------萌新学习之路,Iterator、fore

      本文链接:https://www.haomeiwen.com/subject/aqvngttx.html