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参数的构造方法

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕需求响应动态冰蓄冷系统及其优化策略展开研究,结合Matlab代码实现,探讨了在电力需求侧管理背景下,冰蓄冷系统如何通过优化运行策略参与需求响应,以实现削峰填谷、降低用电成本和提升能源利用效率的目标。研究内容包括系统建模、负荷预测、优化算法设计(如智能优化算法)以及多场景仿真验证,重点分析不同需求响应机制下系统的经济性和运行特性,并通过Matlab编程实现模型求解与结果可视化,为实际工程应用提供理论支持和技术路径。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事综合能源系统优化工作的工程师;熟悉Matlab编程且对需求响应、储能优化等领域感兴趣的技术人员。; 使用场景及目标:①用于高校科研中关于冰蓄冷系统与需求响应协同优化的课题研究;②支撑企业开展楼宇能源管理系统、智慧园区调度平台的设计与仿真;③为政策制定者评估需求响应措施的有效性提供量化分析工具。; 阅读建议:建议读者结合文中Matlab代码逐段理解模型构建与算法实现过程,重点关注目标函数设定、约束条件处理及优化结果分析部分,同时可拓展应用其他智能算法进行对比实验,加深对系统优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值