Java集合的定义与Collection类使用详解

什么是集合?

概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。

集合和数组的区别:

  • 数组长度固定,集合长度不固定
  • 数组可以存储基本类型和引用类型,集合只能引用类型

Collection :

Collection体系结构:

Collection的使用:包括增加元素、删除元素、遍历元素(两种方法)和判断

直接看代码:

package com.collections;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
    public static void main(String[] args) {
//        创建集合
        Collection collection = new ArrayList();
//        1.添加元素
        collection.add("苹果");
        collection.add("梨子");
        collection.add("榴莲");
        System.out.println(collection);
        System.out.println("元素个数为:"+collection.size());
//        2.删除元素
        collection.remove("榴莲");
        System.out.println(collection);
        System.out.println("元素个数为:"+collection.size());
//        3.遍历元素
//        3.1增强for循环
        System.out.println("-------------3.1增强for循环----------------");
        for (Object object:collection) {
            System.out.println(object);
        }
        System.out.println("-------------3.2使用迭代器Iterator----------------");
//        3.2使用迭代器Iterator,本身是一个接口
//        三种方法:hasNext()判断是否有元素,next()获取下一个元素,remove()删除元素
        Iterator it = collection.iterator();
        while (it.hasNext()){
           String s =  (String)it.next();
            System.out.println(s);
            //it.remove();
        }
        System.out.println("元素个数为"+collection.size());
//        4.判断:contains
        System.out.println(collection.contains("西瓜"));
//        判断是否为空
        System.out.println(collection.isEmpty());
    }
}

注意:使用Collection是不能实例化的,但是可以通过new一个它的子类来创建对象的。

还有就是重点记住遍历元素的方法。 迭代器Iterator。

迭代器Iterator:

三种方法hasNext()、next() 还有一个remove()用于删除迭代器中的元素(在迭代器中,是不可以用collection.remove来删除元素的)

原理:

先用hasNext()判断是否有元素,如果有就下一个next(),依次类推。

使用Collection保存学生信息:

直接看代码:

Student类

package com.collections.test;
public class Student {
    private String name;
    private int age;
    public Student() {
    }
    public Student(String name, int age) {
        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 com.collections.test;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {
    public static void main(String[] args) {
        Student s1 = new Student("aaa",18);
        Student s2 = new Student("bbb",19);
        Student s3 = new Student("ccc",20);
        Collection collection = new ArrayList();
        collection.add(s1);
        collection.add(s2);
        collection.add(s3);
        System.out.println("元素个数为:"+collection.size());
        System.out.println(collection.toString());
//        collection.remove(s1);
//        collection.remove(new Student("ccc",20));
        System.out.println("删除后:"+collection.size());
        System.out.println(collection.toString());
//        3.遍历
        for (Object object:collection) {
            Student s = (Student)object;
            System.out.println(s);
        }
        System.out.println("-----------------------------------------");
//        迭代器
        Iterator it = collection.iterator();
        while(it.hasNext()){
             Student s = (Student) it.next();
            System.out.println(s);
        }
    }
}

运行结果:

到此这篇关于Java集合的定义与Collection类使用详解的文章就介绍到这了,更多相关Java集合与Collection内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java Collection集合的三种遍历方式详解

    目录 Collection遍历方式 迭代器遍历 foreach遍历 Lambda遍历 Collection遍历方式 Collection集合遍历的方式有三种: 迭代器foreach/增强for循环lambda表达式 迭代器遍历 迭代器概述: 遍历就是一个一个的把容器中的元素访问一遍. 迭代器在Java中是Iterator代表的,迭代器是集合的专用遍历方式. Collection集合获取迭代器的方: 方法名称 说明 iterator() 返回集合中的迭代器对象,该迭代器对象默认指向当前集合的0索引

  • Collection stream使用示例详解

    目录 基础数据 元素转Stream Terminal opt-Collectors.mapping Terminal opt-Collectors.toCollection&collectingAndThen Terminal opt-Collectors.toMap 近日频繁应用 Stream 的 Api,记录一下应用实例. 基础数据 实体类: @Data @Accessors(chain = true) public static class Person { private String

  • Java中的Collections类的使用示例详解

    Collections的常用方法及其简单使用 代码如下: package Collections; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Stack; public class collections { public static void main(String[]args){ int array[]={125,75,56,7}; Li

  • Java集合的定义与Collection类使用详解

    什么是集合? 概念:对象的容器,定义了对多个对象进行操作的常用方法.可实现数组的功能. 集合和数组的区别: 数组长度固定,集合长度不固定 数组可以存储基本类型和引用类型,集合只能引用类型 Collection : Collection体系结构: Collection的使用:包括增加元素.删除元素.遍历元素(两种方法)和判断 直接看代码: package com.collections; import java.util.ArrayList; import java.util.Collection

  • Java集合框架之List ArrayList LinkedList使用详解刨析

    目录 1. List 1.1 List 的常见方法 1.2 代码示例 2. ArrayList 2.1 介绍 2.2 ArrayList 的构造方法 2.3 ArrayList 底层数组的大小 3. LinkedList 3.1 介绍 3.2 LinkedList 的构造方法 4. 练习题 5. 扑克牌小游戏 1. List 1.1 List 的常见方法 方法 描述 boolean add(E e) 尾插 e void add(int index, E element) 将 e 插入到 inde

  • Java集合框架之Stack Queue Deque使用详解刨析

    目录 1. Stack 1.1 介绍 1.2 常见方法 2. Queue 2.1 介绍 2.2 常见方法 3. Deque 3.1 介绍 3.2 常见方法 1. Stack 1.1 介绍 Stack 栈是 Vector 的一个子类,它实现了一个标准的后进先出的栈.它的底层是一个数组. 堆栈只定义了默认构造函数,用来创建一个空栈.堆栈除了包括由 Vector 定义的所有方法,也定义了自己的一些方法. 1.2 常见方法 方法 描述 E push(E item) 压栈 E pop() 出栈 E pee

  • Java集合框架源码分析之LinkedHashMap详解

    LinkedHashMap简介 LinkedHashMap是HashMap的子类,与HashMap有着同样的存储结构,但它加入了一个双向链表的头结点,将所有put到LinkedHashmap的节点一一串成了一个双向循环链表,因此它保留了节点插入的顺序,可以使节点的输出顺序与输入顺序相同. LinkedHashMap可以用来实现LRU算法(这会在下面的源码中进行分析). LinkedHashMap同样是非线程安全的,只在单线程环境下使用. LinkedHashMap源码剖析 LinkedHashM

  • java 中 String format 和Math类实例详解

    java 中 String format 和Math类实例详解 java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是 %c",

  • Java使用备忘录模式实现过关类游戏功能详解

    本文实例讲述了Java使用备忘录模式实现过关类游戏功能.分享给大家供大家参考,具体如下: 一.模式定义 备忘录模式,在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象外部保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 二.模式举例 1模式分析 我们借用过关类游戏来说明这一模式. 2备忘录模式静态类图 3代码示例(黑箱备忘录模式) 3.1创建备忘录窄接口一INarrowMemento package com.demo.memento; /** * 备忘录窄接口(不提供任何方法,外部

  • Java集合中的fail-fast(快速失败)机制详解

    简介 我们知道Java中Collection接口下的很多集合都是线程不安全的, 比如 java.util.ArrayList不是线程安全的, 因此如果在使用迭代器的过程中有其他线程修改了list,那么将抛出ConcurrentModificationException,这就是所谓fail-fast策略. 这一策略在源码中的实现是通过 modCount 域,modCount 顾名思义就是修改次数,对ArrayList 内容的修改都将增加这个值,那么在迭代器初始化过程中会将这个值赋给迭代器的 exp

  • 在java中如何定义一个抽象属性示例详解

    前言 本文主要给大家介绍的是在java中定义一个抽象属性的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: Abstract关键字通常被用于类和方法,用来把某些行为的实现委托给子类.由于Java不支持抽象属性,如果你试图将类属性标记为抽象,将会得到一个编译时错误. 在本教程中,我们将介绍两种定义抽象属性的方法,这些抽象属性可以由子类进行设置,而且不使用Abstract 关键字. 实用案例 假设我们想要实现一个记录事务的日志模块,用来记录特定事务的信息.我们希望这个模块是抽

  • Java基于代理模式解决红酒经销问题详解

    本文实例讲述了Java基于代理模式解决红酒经销问题.分享给大家供大家参考,具体如下: 一. 模式定义 在代理模式中,有两个对象参与处理同一请求,接收的请求由代理对象委托给真实对象处理,代理对象控制请求的访问,它在客户端应用程序与真实对象之间起到了一个中介桥梁的作用.代理模式使用对象聚合代替继承,有效地降低了软件模块之间的耦合度. 二. 模式举例 1 模式分析 我们借用红酒经销来说明这一模式. 2 代理模式静态类图 3 代码示例 3.1 红酒工厂接口一IRedWine package com.de

  • Java基于命令模式实现邮局发信功能详解

    本文实例讲述了Java基于命令模式实现邮局发信功能.分享给大家供大家参考,具体如下: 一. 模式定义 命令模式,将来自客户端的请求封建为一个对象,无须了解这个请求激活的动作或有关接受这个请求的处理细节.命令模式的根本目的在于将"请求者"与"实现者"之间解耦. 二. 模式举例 1 模式分析 我们借用邮局发信来说明这一模式. 2 命令模式静态类图 3 代码示例 3.1信件接收者接口一IReceiver package com.demo.receiver; /** * 信

随机推荐