Collection集合

简介: Collection集合

集合Collection

1、概诉

集合主要是一些容器,是用来存储数据的。Collection接口是集合中的根层次的接口,其子类主要有Set和List接口,其中Set接口的主要实现类有HashSet和TreeSet,List接口的实现类主要有ArrayList和LinkedList。如下图。  

bb237532a2e44b99bea9671ae8c0fb00.png

2、Collection集合

主要方法有:
  add(E e):往集合中添加元素
  remove(Object o):将指定元素对象从集合中删除
  isEmpty():返回boolean值,用于判断当前集合是否为空
  iterator():返回在此Collection的元素上进行迭代的迭代器,用于遍历集合中的对象
  size():返回int值,获取该集合中元素的个数

3、List集合

List集合中的元素允许重复,各个元素的顺序就是插入顺序。类似java数组,用户可以利用索引来访问集合中的元素
主要方法:
  get(int index):获取指定索引位置的元素
  set(int index,Object):将集合指定索引位置的元素对象改为指定的对象
  1、Lsit接口的实现类
public class ListTest002 {
  public static void main(String[] args) {
    //利用ArrayList创建list对象
    //ArrayList集合是线性存储元素
    //LinkedList集合是链表存储元素
    List<Integer> list=new ArrayList<>();
    //往list集合添加元素
    list.add(1);
    list.add(2);
    list.add(2);
    list.add(3);
    //创建随机数(0-length-1
    int i=(int)(Math.random()*list.size());
    //打印递i个元素
    System.out.println("随机获取数组中的元素:"+list.get(i));
//    list.set(2, 3);
    //将指定索引位置的元素去除
    list.remove(2);
    //遍历循环输出集合元素
    for(int j=0;j<list.size();j++){
      System.out.println(list.get(j));
    }
  }
}

运行结果:

de4547e5fa084111ac69556e21ced6e1.png

4、Set集合

Set集合中的对象不按照特定的方式排序,只是简单的把对象加入集合中,但是Set集合中不允许有重复的对象。
主要方法: 
  first():返回Set中当前第一个元素
  last():返回Set中当前最后一个元素
  comparator():返回对此Set中的元素进行排序的比较器。如果此Set使用自然顺序,则返回null
  headSet(E toElement):返回一个新的Set集合,新集合是toElement(不包括)之前的所有对象
  subSet(E fromElement,E endElement):返回一个新的集合,是fromElement(包括)与endElement(不包括)之间的全部对象
  tailSet(E fromElement):返回一个新的集合,新集合包含对象fromElement(包括)之后的所有对象
public class SetTest003 {
  public static void main(String[] args) {
    //创建Student对象
    Student student1=new Student("张三");
    Student student2=new Student("李四");
    Student student3=new Student("王五");
    Student student4=new Student("赵六");
    Student student5=new Student("赵六",4);
    //创建TreeSet集合
    TreeSet treeSet=new TreeSet<>();
    //往TreeSet集合中添加元素
    treeSet.add(student1);
    treeSet.add(student5);
    treeSet.add(student2);
    treeSet.add(student3);
    treeSet.add(student4);
    //获取TreeSet中的迭代器
    Iterator<Student> iterator=treeSet.iterator();
    //遍历迭代器
    while (iterator.hasNext()) {
      //如果有下一个就将下一个强转为指定的类型
      Student s = (Student) iterator.next();
      //输出
      System.out.println(s);
    }
    //获取student3(不包括)之前的集合元素的迭代器
    iterator=treeSet.headSet(student3).iterator();
    System.out.println("截取前面部分的集合");
    while (iterator.hasNext()) {
      Student student = (Student) iterator.next();
      System.out.println(student);
    }
    //获取中间元素(student3包括,student1不包括)的迭代器,要保证是递增
    iterator=treeSet.subSet(student3, student1).iterator();
    System.out.println("截取student1和student3之间的集合");
    while (iterator.hasNext()) {
      Student student = (Student) iterator.next();
      System.out.println(student);
    }
  } 
}
class Student implements Comparable<Object>{
  private String name;
  private int id;
  public static int init=001;
  public Student() {
    super();
  }
  public Student(String name) {
    super();
    this.name = name;
    this.id = init++;
  }
  public Student(String name, int id) {
    super();
    this.name = name;
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  @Override
  public String toString() {
    return "Student [name=" + name + ", id=" + id + "]";
  }
  /**
   * 设置对象顺序
   */
  @Override
  public int compareTo(Object o) {
    Student s=(Student)o;
    if (this.getId()>s.getId()) {
      return -1;
    }else if (this.getId()<s.getId()) {
      return 1;
    }else {
      return 0;
    }
  }
}

运行截图:

50d710b24ef847999e5486845410b95d.png

注意:在利用TreeSet的时候要实现Comparable接口!!!

相关文章
|
存储 索引 容器
List集合详解
List集合详解
88 0
|
前端开发 数据库 索引
今天就聊聊List集合
今天就聊聊List集合
50 0
|
3月前
Collection的遍历
Collection的遍历
38 2
|
3月前
|
存储 Java 索引
Collection集合
Collection集合
|
3月前
|
索引
|
6月前
|
存储 Java 索引
集合进阶Collection集合
这篇文档介绍了Java中的Collection集合和其子类List与Set的基本概念和特性。
49 3
|
6月前
|
存储 安全 Java
一文了解List集合
Java的整个集合框架中,主要分为List,Set,Queue,Stack,Map等五种数据结构。其中,前四种数据结构都是单一元素的集合,而最后的Map则是以KV对的形式使用。根本就List集合做出了一些解析
|
存储 uml 容器
集合框架之List集合
集合框架之List集合
66 0
|
容器
List集合详细介绍
List集合详细介绍
57 0
|
存储 安全 Java