集合类的学习

本文详细介绍了Java Collection接口及其子接口List,包括它们的特点、方法演示,以及ArrayList、Vector和LinkedList的实现。通过实例展示了如何操作和管理这些集合,以及判断、添加、删除和遍历元素的操作。
摘要由CSDN通过智能技术生成

Collection体系集合

Collection父接口:

  • 特点:代表一组任意类型的对象,无序、无下标、不能重复

  • 方法

    • boolean add(Object obj) :添加一个对象

    • boolean addAll(Collection c) :将一个集合中的所有对象添加到此集合中

    • void clear() :清空此集合中的所有对象

    • boolean contains(Object 0) :检查此集合中是否包含0对象

    • boolean equals(Object 0) :比较此集合是否与指定对象相等

    • boolean isEmpty() :判断此集合是否为空

    • boolean remove(Object o) 在此集合中移除o对象

    • int size() :返回此集合中的元素个数

    • Object[] toArray() :将此集合转换成数组

代码演示:

  package Collection_demo;
  ​
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.Iterator;
  ​
  public class demo1 {
      public static void main(String[] args) {
          //创建集合
          Collection collection = new ArrayList();
          //1.添加元素
          collection.add("苹果");
          collection.add("西瓜");
          collection.add("榴莲");
          System.out.println("元素个数:"+collection.size());//元素个数:3
          System.out.println(collection);//[苹果, 西瓜, 榴莲]
  ​
          //2.删除元素
          collection.remove("榴莲");
          System.out.println("删除之后:"+collection);//删除之后:[苹果, 西瓜]
          collection.clear();//清空元素
          System.out.println("清空之后:"+collection);//清空之后:[]
  ​
          //3.遍历元素
          collection.add("苹果");
          collection.add("西瓜");
          collection.add("榴莲");
          //3.1使用增强for
          for (Object object:collection) {
              System.out.println(object);
          }
          //3.2使用迭代器(迭代器专门用来遍历集合的一种方式)
          //hasNext():有没有下一个元素
          //next():获取下一个元素
          //remove():删除当前元素
          Iterator it = collection.iterator();
          while(it.hasNext()){
              String s = (String)it.next();
              System.out.println(s);
  ​
              //迭代过程中不允许使用Collection的其他的方法来修改元素
              //collection.remove(s);  会报错
              //it.remove();//可以使用
          }
          //4.判断
          System.out.println(collection.contains("西瓜"));
      }
  }
public class Student {
      private String name;
      private int age;
  ​
      public Student(){
  ​
      }
  ​
      public Student(String name, int age) {
          super();
          this.name = name;
          this.age = age;
      }
  ​
      public String getName() {
          return name;
      }
  ​
      public void setName(String name) {
          this.name = name;
      }
  ​
      public int getAge() {
          return age;
      }
  ​
      public void setAge(int age) {
          this.age = age;
      }
  ​
      @Override
      public String toString() {
          return "Student{" +
                  "name='" + name + '\'' +
                  ", age=" + age +
                  '}';
      }
  ​
  }
package Collection_demo;
  ​
  import java.util.ArrayList;
  import java.util.Collection;
  ​
  public class demo2 {
      public static void main(String[] args) {
          //新建Collection对象
          Collection collection = new ArrayList();
          Student s1 = new Student("树叶",20);
          Student s2 = new Student("戴拿",18);
          Student s3 = new Student("朝一",22);
          //1.添加数据
          collection.add(s1);
          collection.add(s2);
          collection.add(s3);
          System.out.println("元素个数:"+collection.size());
          System.out.println(collection);
          System.out.println(collection.toString());
  ​
          //2.删除数据
          collection.remove(s1);
          System.out.println("删除之后:"+collection.size());
      }
  ​
  }
  
  

List接口

  • 特点:有序、有下标、元素可以重复

  • 方法:

    • void add(itn index,Object o)//在index位置插入对象o

    • boolean addAll(int index,Collection c)//将一个集合中的元素添加到此集合中的index位置

    • Object get(int fromIndex, int toIndex)//返回fromIndex和toIndex之间的集合元素

List实现类

  • ArrayList【重点】:

    • 数组结构实现,查询快、增删慢

    • JDK1.2版本,运行效率快、线程不安全

    • 源码分析:

      • 默认容量 DEFAULT_CAPACITY=10

        ​ 注意:如果没有向集合中添加任何元素,容量是0

      • 存放元素的数组:elementData

      • 实际的元素个数: size

      • 添加元素 :add

  • Vector:

    • 数组就够实现,查询快、增删慢;

    • JDK1.0版本,运行效率慢、线程安全

  • LinkedList:

    • 链表结构实现,增删快、查询慢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值