Collection接口和常用方法

Collection接口实现类的特点

public interface Collection<E> extends Iterable<E>

  1. collection实现子类可以存放多个子元素,每个元素可以是Object
  2. 有些Collection的实现类,可以存放时能够重复的元素,有些不行
  3. 有些Collection的实现类是有序的(List),有些不是(Set)
  4. Collection接口没有直接的实现子类,是通过子类接口的Set和List实现的
import java.util.ArrayList;
import java.util.List;
public class CollectionMethod {
   @SuppressWarnings({"all"})
   public static void main(String[] args) {
      List list = new ArrayList();
      //add添加单个元素
      list.add("rick");
      list.add(55);  //等价于 list.add(new Integer(55))
      list.add(true);
      System.out.println(list);
      // remove删除元素
      list.remove(0);   // 删除索引为0的元素
      list.remove(true);   // 删除指定元素
      System.out.println("删除后"+list);
      System.out.println(list.contains(55)); // 查找元素是否存在
      System.out.println(list.size()); // 获取元素个数
      System.out.println(list.isEmpty()); // 判断集合是否为空
      list.clear(); // 清空集合
      System.out.println(list);
      ArrayList arrayList2 = new ArrayList();
      arrayList2.add("jpg");
      arrayList2.add("png");
      list.addAll(arrayList2);
      System.out.println(list);
      System.out.println(list.containsAll(arrayList2));  // 判断多个元素是否存在
      list.add("jpeg");
      list.removeAll(arrayList2);
      System.out.println(list);
   }
}

Collection接口遍历元素方式一、使用Interator(迭代器)

  1. Iterator对象被称为迭代器,主要用于遍历Collection集合中的元素。
  2. 所有实现了Collection接口类都有一个iterator()方法,用于返回一个实现了Interator接口的对象,即可以返回一个迭代器
  3. 参考Iterator的结构图
  4. Iterator仅用于遍历集合,本身并不存放对象。

迭代器的执行原理

Interator interator=coll.iterator();得到一个集合的迭代器

hasNext();判断是否还有下一个对象

while(iterator.hasNext()){next();/*作用:1.向下移动2.把下移后的几何位置上的元素返回*/System.out.println(iterator.next());}

注意:在调用Iterator.next()方法之前必须要调用Iterator.hasNext()进行检测。否则下条记录无效,直接调用iterator.next()会抛出异常

 

集合增强for
public class CollectionInterator {
   @SuppressWarnings({"all"})
   public static <Interator> void main(String[] args) {
      Collection collection = new ArrayList();
      collection.add(new Person("rick","ranker",54));
      collection.add(new Person("jack","general",87));
      collection.add(new Person("gelnn","ranker",36));
      System.out.println(collection);
      // 遍历collection集合
      //1.获取collection对应的迭代器
      Iterator iterator = collection.iterator();
      //2.使用while循环遍历
      while (iterator.hasNext()){   // 判断是否还有下一个对象
         // 返回下一个元素(类型Object)
         Object obj=iterator.next();
         System.out.println(obj);
      }
      //3.退出while循环后,Iterator迭代器只想最后一个元素
      //4.需要再次遍历则需要重置迭代器
      iterator=collection.iterator();  //重置
      // 使用增强for循环
      System.out.println("使用增强for循环实现:");
      // 增强for,底层依旧是迭代器,可以简单理解为:增强for是简易版的迭代器遍历
      for (Object person:collection){
         System.out.println(person);
      }
      // 增强for,也可以在数组使用

   }
}
class Person{
   private String name;
   private String rank;
   private int age;

   public Person(String name, String rank, int age) {
      this.name = name;
      this.rank = rank;
      this.age = age;
   }

   public String getName() {
      return name;
   }

   public void setName(String name) {
      this.name = name;
   }

   public String getRank() {
      return rank;
   }

   public void setRank(String rank) {
      this.rank = rank;
   }

   public int getAge() {
      return age;
   }

   public void setAge(int age) {
      this.age = age;
   }

   @Override
   public String toString() {
      return "Person{" +
              "name='" + name + '\'' +
              ", rank='" + rank + '\'' +
              ", age=" + age +
              '}';
   }
}

 

posted @ 2024-07-05 16:28  Dr丶云幕  阅读(5)  评论(0编辑  收藏  举报