Java-容器

vivado下ECO操作-不重新综合实现修改属性并生成.bit ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要 阅读详情

一、List

  1. ArrayList<>(变长数组)实现
add( ):在末尾添加一个元素
clear( ):清空
size( ):返回长度
isEmpty( ):是否为空
get(i):获取第i个元素
set(i, val):将第i个元素设置为val

(1)add( )、size( )、get( i )

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import javax.naming.StringRefAddr;

import org.jcp.xml.dsig.internal.MacOutputStream;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         List<Integer> list = new ArrayList<>();
         
         list.add(1);
         list.add(2);
         list.add(3);
                  
         // 两种遍历方式
         //方式1:普通for循环
         for(int i = 0 ; i < list.size() ; i ++)  System.out.printf("%d ",list.get(i));
         System.out.println();
         //增强for循环
         for(int x: list)  System.out.printf("%d ",x);
    }
}

(2)clear( )

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import javax.naming.StringRefAddr;

import org.jcp.xml.dsig.internal.MacOutputStream;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         List<Integer> list = new ArrayList<>();
         
         list.add(1);
         list.add(2);
         list.add(3);
                  
         list.clear();
         
         System.out.print(list);
    }
}

(3)isEmpty( )

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         List<Integer> list = new ArrayList<>();
         
         list.add(1);
         list.add(2);
         list.add(3);
                  
         if(list.isEmpty() == true)  System.out.println("空");
         else  System.out.println("不空");
    }
}

(4)set(i, val)

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         List<Integer> list = new ArrayList<>();
         
         list.add(1);
         list.add(2);
         list.add(3);
                  
         for(int i = 0 ; i < list.size() ; i ++)  list.set(i,1);
         
         for(int x:list)  System.out.printf("%d ",x);
    }
}

  1. LinkedList<> (双链表)实现

只需修改上面代码的其中一条语句,然后导入新的类,其他的代码和上边一模一样!!!

List<Integer> list = new LinkedList<>();

讲一下ArrayList<>和LinkedList<>的区别:

1、ArrayList 和LinkedList结构不同

可以说ArrayList和LinkedList除了是同属于集合类,其他都是不同的,因为他们本身的实现是两种不同的实现方式,ArrayList 维护的是一个动态数组,LinkedList维护的是一个双向链表,而他们之间的不同是数组与链表的特性比较;

  1. 效率不同

LinkedList添加删除快

4、查询数据

ArrayList比LinkedList快;

二、Stack<>

push():压入元素
get():得到元素的值
pop():弹出栈顶元素,并返回栈顶元素
peek():返回栈顶元素
size():返回长度
empty():栈是否为空
clear():清空
package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
import java.util.Stack;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         Stack<Integer> stk = new Stack<>();
         
         // 栈中压入元素
         stk.push(1);
         stk.push(2);
         stk.push(3);
         
         // 遍历栈
         for(int i = 0 ; i < stk.size() ; i ++)  System.out.printf("%d ",stk.get(i));
         System.out.println();
         
         // 返回栈顶元素
         System.out.println(stk.peek());
         
         // 弹出栈顶元素
         stk.pop();
         for(int i = 0 ; i < stk.size() ; i ++)  System.out.printf("%d ",stk.get(i));
         System.out.println();
         
         // 判断是否空
         if(stk.isEmpty())  System.out.println("空");
         else System.out.println("不空");
         
         // 清空栈
         stk.clear();
    }
}

三、Queue<>

add():在队尾添加元素
remove():删除并返回队头
isEmpty():是否为空
size():返回长度
peek():返回队头
clear():清空

1、LinkedList<>(双链表) 实现队列

// size()、isEmpty()、clear()就不多哔哔了

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         Queue<Integer> q = new LinkedList<>();
         
         q.add(1);
         q.add(2);
         q.add(3);
         
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
         
         // 删除队头&&返回队头
         System.out.println(q.remove()); // 返回队头的同时把对头删除了
         
         // 返回队头
         System.out.println(q.peek());
         q.remove(); // 正常的单写,删除2
         
         //遍历一下
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
    }
}

  1. PriorityQueue<>:优先队列 实现堆

(1)小根堆(默认)

小根堆堆顶是最小值

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         PriorityQueue<Integer> q = new PriorityQueue<>();
         
         q.add(1);
         q.add(2);
         q.add(3);
         
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
         
         // 删除堆顶&&返回堆顶
         System.out.println(q.remove()); // 返回队头的同时把堆顶删除了
         
         // 返回堆顶
         System.out.println(q.peek());
         q.remove(); // 正常的单写,删除2
         
         //遍历一下
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
    }
}

(2)大根堆

加参数:

new PriorityQueue<>(Collections.reverseOrder())

小根堆堆顶是最小值

package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         PriorityQueue<Integer> q = new PriorityQueue<>(Collections.reverseOrder( ));
         
         q.add(1);
         q.add(2);
         q.add(3);
         
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
         
         // 删除堆顶&&返回堆顶
         System.out.println(q.remove()); // 返回队头的同时把堆顶删除了
         
         // 返回堆顶
         System.out.println(q.peek());
         q.remove(); // 正常的单写,删除2
         
         //遍历一下
         for(int x: q)  System.out.printf("%d ",x);
         System.out.println();
    }
}

四、Map

key自动排序

put(key, value):添加关键字和其对应的值
get(key):返回关键字对应的值
containsKey(key):是否包含关键字
remove(key):删除关键字
size():返回元素数
isEmpty():是否为空
clear():清空
entrySet():获取Map中的所有对象的集合
Map.Entry<K, V>:Map中的对象类型
getKey():获取关键字
getValue():获取值

java.util.TreeMap<K, V>多的函数:(用于二分)
    ceilingEntry(key):返回大于等于key的最小元素,不存在则返回null
    floorEntry(key):返回小于等于key的最大元素,不存在则返回null
  1. HashMap<K, V>:哈希表 实现
package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

import javax.naming.StringRefAddr;

import org.jcp.xml.dsig.internal.MacOutputStream;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         Map<String,Integer> m = new HashMap<>();
         
         // 添加关键字和其对应的值
         m.put("a", 0);
         m.put("b", 1);
         m.put("c", 2);
         
         // 返回关键字"a"对应的值
         System.out.println(m.get("a"));
         
         // 是否包含关键字
         if(m.containsKey("a"))  System.out.println("a存在");
         else  System.out.println("a不存在");
         
         // 删除关键字
         m.remove("a");
         for (String key : m.keySet())   System.out.println(key + "-" + m.get(key)); 
         
         //getKey()、getValue()、entrySet()和Map.Entry<K, V>的遍历,我的评价是:不如增强for循环
         for(Map.Entry<String, Integer> entry: m.entrySet())
         System.out.printf("%s %d\n",entry.getKey(),entry.getValue());
    }
}

  1. TreeMap<K, V>:平衡树 实现
package 做题;
import java.lang.reflect.Array;
import java.security.PublicKey;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.PriorityQueue;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;
import java.util.TreeMap;

import javax.naming.StringRefAddr;

public class Main 
{
    public static void main(String[] args) 
    {
         Scanner sc = new Scanner(System.in);
         final int N = 10;
        
         TreeMap<String,Integer> m = new TreeMap<>();
         
         // 添加关键字和其对应的值
         m.put("a", 0);
         m.put("b", 1);
         m.put("c", 2);
         m.put("d", 3);
         
         // 返回关键字"a"对应的值
         System.out.println(m.get("a"));
         
         // 是否包含关键字
         if(m.containsKey("a"))  System.out.println("a存在");
         else  System.out.println("a不存在");
         
         // 删除关键字
         m.remove("a");
         for (String key : m.keySet())   System.out.println(key + "-" + m.get(key)); 
         
         //getKey()、getValue()、entrySet()和Map.Entry<K, V>的遍历,我的评价是:不如增强for循环
         for(Map.Entry<String, Integer> entry: m.entrySet())
         System.out.printf("%s %d\n",entry.getKey(),entry.getValue());
         
         // 二分
         Map.Entry<String, Integer> res = m.ceilingEntry("a");
         System.out.printf("%s %d\n",res.getKey(),res.getValue());
         res = m.floorEntry("e");
         System.out.printf("%s %d\n",res.getKey(),res.getValue());
    }
}

五、set

自带去重  
关键字自动排序(用哈希表HashSet<K>和平衡树TreeSet<K>实现的都是如此)         
接口:java.util.Set<K>
实现:
- java.util.HashSet<K>:哈希表
- java.util.TreeSet<K>:平衡树
函数:
    add():添加元素
    contains():是否包含某个元素
    remove():删除元素
    size():返回元素数
    isEmpty():是否为空
    clear():清空
java.util.TreeSet多的函数:
    ceiling(key):返回大于等于key的最小元素,不存在则返回null
    floor(key):返回小于等于key的最大元素,不存在则返回null

  1、测试是否带去重

import javax.persistence.criteria.CriteriaBuilder;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.*;



public class Main
{
    static PrintWriter pw = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    static int N = (int)1e5 + 10;
    static int a[] = new int[N];
    static Set<Integer> set1 = new TreeSet<>();
    static Set<Integer> set2 = new HashSet<>();

    public static void main(String[] args ) throws IOException
    {
        int n = rd.nextInt();
        for(int i = 1 ; i <= n ; i ++)  a[i] = rd.nextInt();

        for(int i = 1 ; i <= n ; i ++)
        {
            set1.add(a[i]);
            set2.add(a[i]);
        }

        for(int x: set1)  pw.print(x + " ");
        pw.println();
        for(int x: set2)  pw.print(x + " ");
        pw.flush();
    }
}

class rd
{
    static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    static StringTokenizer tokenizer = new StringTokenizer("");

    static String nextLine() throws IOException  { return reader.readLine(); }

    static String next() throws IOException
    {
        while (!tokenizer.hasMoreTokens())  tokenizer = new StringTokenizer(reader.readLine());
        return tokenizer.nextToken();
    }

    static int nextInt() throws IOException  { return Integer.parseInt(next()); }

    static double nextDouble() throws IOException { return Double.parseDouble(next()); }

    static long nextLong() throws IOException  { return Long.parseLong(next());}

    static BigInteger nextBigInteger() throws IOException
    {
        BigInteger d = new BigInteger(rd.nextLine());
        return d;
    }
}

class PII
{
    int x,y;
    public PII(int x ,int y)
    {
        this.x = x;
        this.y = y;
    }
}

 

 

告别手动打点计时:用Lauterbach TRACE32的RunTime功能,5分钟搞定嵌入式代码段性能分析 本文深入解析了Lauterbach TRACE32的RunTime功能在嵌入式代码性能分析中的革命性应用。通过硬件级计时原理和非侵入式设计,该功能能快速精确测量代码执行时间,显著提升开发效率,特别适用于汽车电子和工业控制领域。文章还提供了从基础设置到高级分析的完整实战指南,帮助工程师轻松掌握这一强大工具。 阅读详情

相关推荐

从零开始的机械臂yolov5抓取gazebo仿真(一)

本文介绍了如何将机械臂模型导出为URDF

qq_48427527的博客 1万+

java容器详细解析

前言:在java开发中我们肯定会大量的使用集合,在这里我将总结常见的集合类,每个集合类的优点和缺点,以便我们能更好的使用集合。下面我用一幅图来表示 其中淡绿色的表示接口,红色的表示我们经常使用的类。 1:基本概念 Java容器类类库的用途是保存对象,可以将其分为2个概念。 1.1:Collection 一个独立元素的序列,这些元素都服从一条或多条规则。其中List必须按照插入的顺序保...

weixin_34235105的博客 204

R语言安装包镜像报错?5分钟教你快速切换国内镜像源(含清华/阿里云配置)

本文详细介绍了R语言安装包镜像报错的解决方案,包括如何快速切换国内镜像源(如清华、阿里云等),解决'无法读写貯藏處索引'等常见问题。通过图形界面和命令行两种方式,帮助用户高效配置镜像源,提升R语言包安装速度与稳定性。

weixin_29053073的博客 418

JAVA常见容器

假设上面已经有了各个容器的继承关系,我们就顺着继承关系说一下各个接口或者类的特点吧。 Iterable 接口 Iterable是一个超级接口,被Collection所继承。它只有一个方法: Iterator&amp;lt;T&amp;gt; iterator() //即返回一个迭代器 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被...

weixin_42574142的博客 5万+

37张图详解MAC地址、以太网、二层转发、VLAN

MAC 地址 每个网卡或三层网口都有一个 MAC 地址, MAC 地址是烧录到硬件上,因此也称为硬件地址。MAC 地址作为数据链路设备的地址标识符,需要保证网络中的每个 MAC 地址都是唯一的,才能正确识别到数据链路上的设备。 MAC 地址由 6 个字节组成。前 3 个字节表示厂商识别码,每个网卡厂商都有特定唯一的识别数字。后 3 个字节由厂商给每个网卡进行分配。厂商可以保证生产出来的网卡不会有相同 MAC 地址的网卡。 现在可以通过软件修改 MAC 地址,虚拟机使用物理机网卡的 MAC 地址,并不能保.

networktp的博客 4745

基于单片机的按键加1数码管显示(仿真+程序)5046

1、51+Proteus8.10;2、学习计数统计、数码管显示驱动;

理论结合实践,开启你的电子学习新方案! 1325

Java容器有哪些?哪些是同步容器,哪些是并发容器?

Java容器有哪些?哪些是同步容器,哪些是并发容器?一、基本概念新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入...

u013030086的博客 6956

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

java容器

这里写自定义目录标题java容器(Container)1.什么是容器2.java中三大容器3.java内置的容器类Collection set  *HashSet*  *LinkedHashSet*  *TreeSet* List  *ArrayList*   *Vector*  *LinkedList* Queue  *LinkedList*Map(用于映射(键值对)问题处理) HashMapHashTable  LinkedHashMap TreeMap4.容器体系图 java容器(Container)

qq_43111764的博客 1922

第一篇:APS智能排产理论核心与求解器选型指南

本文系统解析了APS(高级计划与排程)系统的核心功能与技术实现。APS作为融合生产计划与排程的智能决策系统,通过运筹优化算法实现全局最优,平衡交付与效率。重点探讨了混合整数线性规划(MILP)在APS中的应用,包括设备分配、生产批量和人员班次优化等场景,并分析了其局限性与其他算法(如启发式算法)的互补性。文章还提供了APS实施策略建议和优化建模技巧,强调从简单模型开始迭代验证的重要性。最后介绍了甘特图在APS中的多维可视化作用,包括计划调整和决策支持功能。全文为理解APS系统原理及实践应用提供了全面指导。

算法工程师 544

模型预测控制(MPC)解析(三):多输入多输出系统

本文为阅读笔记,仅供学习交流使用!!! 在之前的文章中,为了简单起见,以单输入单输出系统为例介绍了MPC控制的实现方法。因为使用的是状态空间方程作为系统模型,这种方法可以轻松的扩展到多输入多输出系统中。 ...

行者无疆的博客 1万+

java容器都有哪些?

什么是容器? 容器是指用以容纳物料并以壳体为主的基本装置。摘自: 百度百科 java容器类类库的用途是"保存对象"。摘自: “Thinking in Java”. Java集合类是一种特别有用的工具类,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等.Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象) “丢进” 该容器中. 摘自: “疯狂Java讲...

老狼的博客 1万+

PCL 欧式聚类分割【2026最新版】

PCL中欧式聚类提取算法原理详解、代码实现以及一个大自然场景地物分割提取并保存分割结果到本地文件夹的应用案例。

点云侠的博客 40万+

Java 容器

一、什么是容器&&为什么使用容器 我们在实际使用时,会使用到成千上万的数据。这些数据存储在内存中不是杂乱无章的,而是通过各种数据结构组织而成的。容器实际上就是存储数据的一块内存区域,使用容器实际上就是通过java标准库中定义的结构、方法来实现数据的存储以及操作。java就提供了很多容器,多个容器的数据结构不同。但是,结构不重要,重要的是能够存储东西,能够判断,获取把容器共性的内容不断往上提取,最终形成容器的继承体系---->Collection。 容器有哪些呢。容器分为三类Set、Li

weixin_44728238的博客 914

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java语言的容器化

近年来,容器化技术在软件开发和部署领域中得到了广泛应用。随着云计算的崛起和微服务架构的流行,容器化不仅极大地简化了应用的部署和管理,还提高了应用的可移植性和弹性。Java作为一种历久弥新的编程语言,其容器化的需求也随之增长。本文将深入探讨Java语言的容器化,从基础知识、技术栈、实践案例到最佳实践,为读者提供一个全面的视角。

2501_91525731的博客 1399

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java容器:1、java中容器有哪些?

java容器:1、java中容器有哪些?

weixin_42924812的博客 1598

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java 容器梳理

Java 的容器框架是语言的核心组成部分,为开发者提供了存储、操作和检索数据的强大工具。本文梳理Java 容器的基础知识、框架结构、核心机制及实用注意事项。

YT的博客 1594

Java 容器--同步容器和并发容器

Java 中的容器主要可以分为四个大类,分别是ListMapSet和Queue,但并不是所有的 Java 容器都是线程安全的。说到线程安全的问题,我们先来理解两个名词同步容器和并发容器。

qq_24907431的博客 1274

Java同步容器和并发容器

同步容器 在 Java 中,同步容器主要包括 2 类: Vector、Stack、HashTable Vector 实现了 List 接口,Vector 实际上就是一个数组,和 ArrayList 类似,但是 Vector 中的方法都是 synchronized 方法,即进行了同步措施。 Stack 也是一个同步容器,它的方法也用 synchronized 进行了同步,它实际上是继承于 ...

不喝枸杞的程序员 1838

Java 容器都有哪些

【代码】Java 容器都有哪些。

走过冬季 1071

java安卓容器_java之容器

先来一张容器的API框架图,我们在java中所学的所有知识,都是根据下面这张图来学习的....容器API:1、Collection接口------定义了存储一组对象的方法,其子接口Set和List分别定义了存储的方式。①、Set中的数据对象没有顺序且不可以重复。②、List中的数据对象有顺序且可以重复。2、Map接口定义了存储“键(key)---值(value)映射对”的方法。Collection...

weixin_28955629的博客 650

什么是Java容器,有哪些常用的容器?

Java容器是用于存储和管理多个对象的数据结构。它提供了一种方便的方式来组织和操作数据。常用的Java容器包括以下几种: ArrayList:动态数组,可以根据需要自动调整大小。 LinkedList:双向链表,适用于频繁的插入和删除操作。 HashSet:无序集合,不允许重复元素。 TreeSet:有序集合,根据元素的自然顺序进行排序。 HashMap:无序键值对集合,通过键快速查找值。 TreeMap:有序键值对集合,根据键的自然顺序进行排序。

4万+

java中常说的容器到底是什么

稍微有所了解的小伙伴都知道java是面向对象的语言 类肯定是一个对象,一个对象不一定是类,它可能是一个变量,常量等 而java中容器最常规意思的就是能保存java的对象的类,常见的容器类Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap 除此以外的还有tomcat容器这样的容器自动运行你写好的代码,他的本质是一个程序 比如java框架中出名的Spring中的IOC容器,它的最低层实现其实是把我们的类打包成一个BeanDefinition对象.

qq_42320804的博客 3368

Java容器学习,一文读懂Java容器使用知识文集。

在 Java 中,容器通常指的是常用的数据结构集合,Java 提供了多种容器来存储、操作和访问数据。主要的 Java 容器包括以下几种......

m0_50308467的博客 1333

java中容器的作用_Java 容器相关知识全面总结

Java实用类库提供了一套相当完整的容器来帮助我们解决很多具体问题。因为我本身是一名Android开发者,包括我在内很多安卓开发,最拿手的就是ListView(RecycleView)+BaseAdapter+ArrayList三剑客, 平时接触使用的容器也只有ArrayList和HashMap。导致对于整个Java容器体系的掌握和使用还停留在很浅的层面。省不足而思改进,那么跟着我来总结一下Jav...

weixin_35537968的博客 759

Java 容器详解—— 常用容器类入门

在 Java 编程中,容器(Container)是用来存储和管理多个对象的结构。Java 提供了一套功能强大的容器类库 ——,位于java.util包中。List是一个有序的集合,允许元素重复,并可以通过索引访问。实现一个字符串栈,支持基本的入栈 (push) 和出栈 (pop) 操作。Java 容器是 Java 编程中最基础也最重要的部分之一。通过合理使用ListSet和Map,我们可以高效地处理各种数据结构问题。同时,学会查阅官方 API 文档,也是提升编程能力的重要一步。

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 1766
上一篇: 砝码称重(dfs)
下一篇: 将A~Z映射成1~26
21RGHLY
博客等级 码龄5年 44粉丝 169原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

21RGHLY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值