list集合家族

集合:集合是指具有某种特定性质的具体或抽象的对象汇总而成的集体

java.util.Collection 集合

Collection是所有集合的顶级接口,规定了所有集合都必须具备的相关方法。

Collection存储的是value对象

list有序可重复
ArrayList
LinkedList
Vector
set无序无重复

Map存储的是key-value形式存在

key无序无重复,value无序可重复

集合与数组功能相似,用来保存一组元素,并提供了对元素操作的相关方法,使用更便捷。

Collection下面有两个常见的集合类型:

java.util.List:可重复集,并且有序

java.util.Set:不可重复集

Set集合不可以存放重复元素,而元素是否重复是依靠元素自身equals比较的结果而定。

所有的集合都在java.util包下

ArrayList

构造方法:无参数的构造方法,传递一个初始化容量的构造方法,传递一个Collection参数的构造方法
常用方法
boolean add(E e)
向当前集合中添加给定元素,成功添加后则返回true
int size()
返回当前集合的元素个数
boolean isEmpty()
判断当前集合是否为一个空集
集合不含有任何元素(size=0)
clea()
清空集合元素
boolean remove(E e)
删除集合元素
从集合中删除给定元素,删除的是集合中与给定元素equals比较为true的元素。
集合会挨着比较,找到一个可以删除的就停止了,即最多只能删除一个
重载方法:删除索引位置的元素remove(int i),删除指定对象元素remove(Object o)
如果想删除1索引位置的元素,调用remove(1);
如果想删除对象为1的对象,调用remove(new Integer(1));
addAll(Collection<? extends E> e)
将给定集合中的所有元素添加到当前集合中
boolean contains(E e)
判断当前集合是否包含给定元素,判断也是根据元素equals比较的。
boolean containsAll(Collection c)
判断当前集合是否包含给定集合的所有元素。
boolean removeAll(Collection c)
删除当前集合中与给定集合的共有元素(删交集)

Vector类

java.util包下的类
是ArrayList的早期版本(StringBuffer是早期,StringBuilder是后来版本)
Vector底层也是利用动态数组的形式存储
线程同步的,安全性高,效率低
扩容方式与ArrayList不同:默认扩容的是两倍,可以通过构造方法创建对象时进行修改
构造方法:无参数的构造方法,传递一个初始化容量的构造方法,传递一个Collection参数的构造方法,传递两个Integer类型的参数,第一个表式初始化容量,第二个表式每次扩容的长度

Stack类,栈

/**
 * 栈结构
 * 栈也是经典的数据结构之一
 * 栈可以保存一组元素,但是存取必须遵循先进后出原则。
 * 通常使用栈完成"后退"这样的功能
 * @author Administrator *
 */
public class StackTest {
    public static void main(String[] args) {
        Stack<String> stack = new Stack<>();
        //将某一个元素压入栈顶
        stack.push("one");
        stack.push("two");
        stack.push("three");
        stack.push("four");
        stack.push("five");
        //查看所有元素
        System.out.println(stack);
        //查看个数
        System.out.println(stack.size());
        //查看栈顶的一个元素,但不删除
        System.out.println(stack.peek());
        //判断是否为空
        System.out.println(stack.isEmpty());
        //查找给定元素在栈中的位置
        System.out.println(stack.search("o"));
        //将某一个元素从栈顶取出并删掉
        String str = stack.pop();
        System.out.println(str);
        System.out.println(stack);
        //遍历操作
        for (String s : stack) {
            System.out.println(s);
        }
        System.out.println(stack);
        //用pop方法遍历栈
        while (stack.size() > 0) {
            String s = stack.pop();
            System.out.println(s);
        }
        System.out.println(stack);
    }
}

Queue队列

/**
 * 队列 
 * 队列是经典的数据结构之一
 * 队列可以保存一组元素,但是存取元素必须遵循先进先出。
 * java.util.Queue 接口 * Queue继承自Collection,队列定义了存取元素的相关方法。
 * 常用实现类:java.util.LinkedList
 */
public class QueueTest {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<String>();
        //入队操作,将元素添加到队列末尾
        queue.offer("one");
        queue.offer("two");
        queue.offer("three");
        queue.offer("four");
        System.out.println(queue);
        /* poll 出队操作
        * 获取并删除当前队列的队首元素
        */
        String str = queue.poll();
        System.out.println(str);
        System.out.println(queue);
        /* * peek 引用队首元素 * 获取队首元素,但是不做删除操作 */
        str = queue.peek();
        System.out.println(str);
        System.out.println(queue);
        /* * 遍历队列 * 使用迭代器遍历后,元素还是在队列当中的。 */
        for (String s : queue) {
            System.out.println(s);
        }
        System.out.println(queue);
    }
}

LinkedList

java.util包下的类
底层使用双向链表的数据结果形式存储
适合插入删除,不适合遍历
构造方法:无参数的构造方法,传递一个Collection参数的构造方法

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值