展开菜单
首页 精品内容 本月促销 装机必备 Windows PDF教程 macOS软件 IOS软件 Android AI 专题
全部分类

当前位置:

首页 > 编程开发 > Java集合方法的使用方式

Java集合方法的使用方式

java集合java集合类存放于java.util包中,是一个用来存放对象的容器集合只能存放对象集合存放的是多个对象的引用,对象本身还是存放在堆内存中集合可以存放不同类型,不限数量的数据类型集合分类---Set、List、Map三种大体系Set:无序,不可重复的集合List:有序,可重复的集合Map:具有映射关系的集合在JDK5之后,增加了泛型,java集合可以记住容器中对象的数据类型SetHashSet不能保证元素的排列顺序(位置由该值的hashcode决定)不可重复(指的是hashcode不相同)Ha

本文目录

    java集合

    java集合类存放于java.util包中,是一个用来存放对象的容器

    • 集合只能存放对象

    • 集合存放的是多个对象的引用,对象本身还是存放在堆内存中

    • 集合可以存放不同类型,不限数量的数据类型

    集合分类---Set、List、Map三种大体系

    • Set: 无序,不可重复的集合

    • List: 有序,可重复的集合

    • Map:具有映射关系的集合

    在JDK5之后,增加了泛型,java集合可以记住容器中对象的数据类型

    Set

    HashSet
    • 不能保证元素的排列顺序(位置由该值的hashcode决定)

    • 不可重复(指的是hashcode不相同)

    • HashSet不是线程安全的

    • 集合元素可以存null

    HashSet类实现set接口,set接口继承Collection接口

    HashCode()方法

    HashSet集合判断两个元素相等的标准:两个对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等。

    如果两个对象通过equals()方法返回true,这两个对象的hashCode值也应该相同。

    如果要set集合存相同类型的对象需使用泛型

    package com.aggregate.demo;
    import com.sun.corba.se.spi.ior.IORTemplateList;
    import java.util.HashSet;
    import java.util.Iterator;
    public class set {
        public static void main(String[] args) {
            HashSet set = new HashSet<>();
            set.add(1);
            set.add("a");//增加元素
            System.out.println(set);
            set.remove(1);//移除元素
            System.out.println(set);
            System.out.println(set.contains("a"));//判断集合中是否存在该元素
            set.clear();//清空集合
            System.out.println(set);
            //遍历集合
            set.add("a");
            set.add("b");
            set.add("c");
            set.add("d");
            //1.使用迭代器遍历集合
            Iterator iterator = set.iterator();
            while (iterator.hasNext()) {
                System.out.print(iterator.next() + "\t");
            }
            System.out.println("===============");
            //2.for each迭代集合
            for (Object i : set) {
                System.out.print(i + "\t");
            }
            System.out.println("===============");
            System.out.println(set.size());//获取元素的个数
            set.add(null);
            System.out.println(set);
            //使用泛型存相同类型的元素
            HashSet set1 = new HashSet<>();
            set1.add("123");
    //      set1.add(2);
        }
    }
    TreeSet

    TreeSet是SortedSet接口的实现类,TreeSet可以确保集合元素处于排序状态。

    TreeSet支持两种排序方法:自然排序和定制排序。默认情况下,TreeSet采用自然排序

    自然排序

    排序:TreeSet会调用集合元素的compareTo(Object obj)方法来比较元素之间的大小关系,然后将集合元素按升序排列

    自定义类如何排序?

    import java.util.Comparator;
    import java.util.Iterator;
    import java.util.TreeSet;
    public class Tree {
        public static void main(String[] args) {
            TreeSet treeSet = new TreeSet<>();
            //TreeSet自然排序
            treeSet.add(5);
            treeSet.add(1);
            treeSet.add(3);
            treeSet.add(2);
            treeSet.add(4);
            System.out.println(treeSet);
            treeSet.remove(3);
            System.out.println(treeSet);
            System.out.println(treeSet.contains(0));
            treeSet.clear();
            System.out.println(treeSet);
            Iterator iterator = treeSet.iterator();
            while (iterator.hasNext()) {
                System.out.println(iterator.next());
            }
            System.out.println("=============");
            for (Integer i : treeSet) {
                System.out.println(i);
            }
            Person P1 = new Person(23, "张三");
            Person P2 = new Person(25, "李四");
            Person P3 = new Person(12, "王五");
            Person P4 = new Person(5, "Lucy");
            Person P5 = new Person(99, "hhhh");
            TreeSet people = new TreeSet<>(new Person());
            people.add(P1);
            people.add(P2);
            people.add(P3);
            people.add(P4);
            people.add(P5);
            for (Person i : people) {
                System.out.println(i.name + "  " + i.age);
            }
        }
    }
    //把person对象存到TreeSet中并且按照年龄排序
    class Person implements Comparator {
        int age;
        String name;
        public Person() {
        }
        public Person(int age, String name) {
            this.age = age;
            this.name = name;
        }
        @Override
        public int compare(Person o1, Person o2) {//年龄正序排序
            if (o1.age > o2.age) {
                return 1;
            } else if (o1.age < o2.age) {
                return -1;
            } else {
                return 0;
            }
        }
    }

    List

    List与ArrayList

    List代表一个元素有序、且可重复的集合,集合中的每个元素都有其对应的顺序索引

    List允许使用重复元素,可以通过索引来访问指定位置的集合元素

    List默认按元素的添加顺序设置元素的索引

    List集合里添加了一些根据索引来操作集合元素的方法

    ArrayList和Vector

    ArrayList和Vector是List接口的两个典型实现

    区别:

    • Vector是一个古老的集合,通常建议使用ArrayList

    • ArrayList是线程不安全的,而Vector是线程安全的

    • 即使为保证List集合线程安全,也不推荐使用VectorMap

    Map

    用于保存具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里key,另外一组用于保存Map里的Value

    Map中的key和value都可以是任何引用类型的数据

    Map中的key不允许重复,即同一个Map对象的任何两个Key通过equals方法比较返回false

    key和value之间存在单向一对一关系,即通过指定的key总能找到唯一的,确定的Value

    HashMap & Hashtable

    HashMap和Hashtable是Map接口的两个典型实现类

    区别:

    • Hashtable是一个古老的Map实现类,不建议使用

    • Hashtable是线程安全的Map实现,但HashMap是线程不安全的

    • Hashtable不允许使用null作为key和value,而HashMap可以

    与HashSet集合不能保证元素的顺序一样,Hashtable、HashMap也不能保证其中key-value对的顺序

    Hashtable、HashMap判断两个key的标准是:key通过equals方法返回true,hashCode值也相等

    Hashta5ble相等的标准是:两个Value通过equalHashMap判断两个Value方法返回true

    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    public class MapDemo {
        public static void main(String[] args) {
            Map map = new HashMap();
            map.put("b", 1);//添加数据
            map.put("c", 2);
            map.put("d", 3);
            System.out.println(map);
            System.out.println(map.get("d"));//根据key取值
            map.remove("c");
            System.out.println(map);//根据key键值对
            System.out.println(map.size());//map集合的长度
            System.out.println(map.containsKey("a"));//判断当前的map集合是否包含指定的key
            System.out.println(map.containsValue(10));//判断当前的map集合是否包含指定的value
    //        map.clear();//清空集合
            Set keys = map.keySet();//可以获取map集合的key的集合
            map.values();//获取集合的所有value值
            //遍历map集合,通过map.keySet();
            for (String key : keys) {
                System.out.println("key:" + key + ", value:" + map.get(key));
            }
            //通过map.entrySet();遍历集合
            Set> entries = map.entrySet();
            for (Map.Entry entry : entries) {
                System.out.println("key:" + entry.getKey() + ", value:" + entry.getValue());
            }
        }
    }

    TreeMap

    TreeMap存储key-value对时,需要根据key对key-value对进行排序。TreeMap可以保证所有的key-value对处于有序状态

    TreeMap的key排序

    • 自然排序:TreeMap的所有的key必须实现Comparable接口,而且所有的key应该是同一个类的对象,否则将会抛出ClassCastException

    • 定制排序(了解):创建TreeMap时,传入一个Comparator对象,该对象负责对TreeMap中的所有key排序。此时不需要Map的key实现Comparator接口

    import java.util.Map;
    import java.util.TreeMap;
    public class TreeMapDemo {
        public static void main(String[] args) {
            //TreeMap的自然排序是字典
            Map treemap = new TreeMap();
            treemap.put(4, "a");
            treemap.put(3, "b");
            treemap.put(2, "c");
            treemap.put(1, "d");
            System.out.println(treemap);
            Map map = new TreeMap();
            map.put("a", "a");
            map.put("c", "a");
            map.put("d", "a");
            map.put("b", "a");
            map.put("ab", "a");
            System.out.println(map);
    
        }
    }

    操作集合的工具类:Collections

    Collections是一个操作Set 、List和Map等集合的工具类

    Collections中提供了大量方法对集合元素进行排序、查询和修改等操作,还提供了对集合对象设置不可变,对集合对象实现同步控制等方法

    排序操作:

    • reverse(List):反转List中元素的顺序

    • shuffle(List):对List集合元素进行随机排序

    • sort(List):根据元素的自然顺序对指定List集合元素升序排序

    • sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序s

    • wap(List,int,int):将指定list集合中的i处元素和j处元素进行交换

    查找、替换

    Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素

    Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素

    Object min(Collection)

    Object min(Collection,Comparator)

    int frequency(Collection,Object):返回指定集合中指定元素的出现次数

    boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值

    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    public class Test {
        public static void main(String[] args) {
            List list = new ArrayList<>();
            list.add("a");
            list.add("c");
            list.add("d");
            list.add("f");
            list.add("b");
            System.out.println(list);
            Collections.reverse(list);//反转List中元素的顺序
            System.out.println(list);
            Collections.shuffle(list);//对list集合元素进行顺序排序
            System.out.println(list);
            Collections.sort(list);//list集合字典升序排序
            System.out.println(list);
            Student s1 = new Student(14, "张三");
            Student s2 = new Student(12, "李四");
            Student s3 = new Student(13, "王五");
            Student s4 = new Student(11, "小刘");
            List students = new ArrayList();
            students.add(s1);
            students.add(s2);
            students.add(s3);
            students.add(s4);
            for (Student student : students) {
                System.out.println(student.name + "," + student.age);
            }
            Collections.sort(students, new Student());
            System.out.println("==========");
            for (Student student : students) {
                System.out.println(student.name + "," + student.age);
            }
            Collections.swap(list, 1, 3);//将指定list集合中的i处元素和j处元素进行交换
            System.out.println(list);
            System.out.println(Collections.max(list));
            System.out.println(Collections.min(list));
            Student max = Collections.max(students, new Student());
            Student min = Collections.min(students, new Student());
            System.out.println(max.name + ", " + max.age);
            System.out.println(min.name + ", " + min.age);
            System.out.println(Collections.frequency(list, "a"));
            System.out.println(Collections.replaceAll(list, "a", "aa"));
            System.out.println(list);
        }
    }
    class Student implements Comparator {
        int age;
        String name;
        public Student() {
        }
        public Student(int age, String name) {
            this.age = age;
            this.name = name;
        }
        @Override
        //根据年龄升序排序对象
        public int compare(Student o1, Student o2) {
            if (o1.age > o2.age) {
                return 1;
            } else if (o1.age < o2.age) {
                return -1;
            } else {
                return 0;
            }
        }
    }

    同步控制

    Collections类中提供了多个synchronizedxxx()方法该方法可使指定集合包装成线程同步的集合;从而解决多线程并访问集合时的线程安全问题。

    泛型

    为什么要有泛型

    集合中使用泛型时只有指定类型才可以添加到集合中,类型安全

    java中的泛型,只在编译阶段有效。

    泛型类

    • 对象实例化时不指定泛型,默认为:object

    • 泛型不同的引用不能相互赋值

    public class Test2 {
        public static void main(String[] args) {
            A a = new A();
            a.setKey("rexx");
            String s = a.getKey();
            System.out.println(s);
        }
    }
    class A {
        private T key;
        public T getKey() {
            return key;
        }
        public void setKey(T key) {
            this.key = key;
        }
    }

    泛型接口

    定义一个泛型接口

    未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声明也一起加到类中

    泛型方法

    package com.aggregate.demo;
    public class Test3 {
        public static void main(String[] args) {
            B1 b1 = new B1();
            B1 b2 = new B1();
            B2 b3 = new B2();
            Cc cc = new Cc();
            cc.test("xxx");
            //泛型方法,在调用之前没有固定的数据类型
            //在调用时,传入的参数是什么类型,就会把泛型改成什么类型
            //也就是说,泛型方法会在调用时确定泛型具体的数据类型
            Integer integer = cc.test1(2);
            Boolean aBoolean = cc.test1(true);
        }
    }
    //定义泛型接口
    interface IB {
        T test(T t);
    }
    //未传入泛型实参时,与泛型类的定义相同,在声明类的时候,需将泛型的声明也一起加到类中
    class B1 implements IB {
        @Override
        public T test(T t) {
            return null;
        }
    }
    //传入实际参数
    //如果实现接口时指定接口的泛型的具体数据类型
    //这个类实现接口所有方法的位置都要泛型替换实际的具体数据类型
    class B2 implements IB {
        @Override
        public String test(String s) {
            return null;
        }
    }
    //泛型方法
    class Cc {
        public void test() {
        }
        //无返回值的泛型方法
        public  void test(T s) {
            T t = s;
        }
        public String test1(String s) {
            return s;
        }
        //有返回值的泛型方法
        public  T test1(T s) {
            return s;
        }
        public void test2(String... strs) {
            for (String s : strs) {
                System.out.println(s);
            }
        }
        //形参为可变参数的泛型方法
        public  void test2(T... strs) {
            for (T str : strs) {
                System.out.println(str);
            }
        }
    
    }
    //带泛型的类可以在类里面定义泛型的变量
    class Dd {
        private E e;
        //静态的泛型方法
        public static  void test3(T t) {
            //System.out.println(this.e);
            //在静态方法中,不能使用类定义泛型,如果要使用泛型,只能使用静态方法自己定义的泛型
            System.out.println(t);
        }
        //在类上定义的泛型,可以在普通的方法中使用
        public  void test(T s) {
            System.out.println(this.e);
            T t = s;
        }
    }

    通配符

    1.有限制的通配符

    • (无穷小,Person]只允许泛型为Person及Person子类的引用调用

    • [Person,无穷大)只允许泛型为Person及Person父类的引用调用

    • 只允许泛型为实现Comparable接口的实现类的引用调用

    枚举类

    在某些情况下,一个类的对象是有限而且固定的。例如季节类,只能有4个对象。

    手动实现枚举类:

    • private修饰构造器

    • 属性使用private final修饰

    • 把该类的所有实例都使用public static final来修饰

    实现接口的枚举类

    • 和普通Java类一样枚举类可以实现一个或多个接口

    • 若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法

    public class Test5 {
        public static void main(String[] args) {
            //Season.SPRING,这段执行就是获取一个Season的对象
            Season spring = Season.SPRING;
            spring.showInfo();
            Season summer = Season.SUMMER;
            summer.showInfo();
            Season spring1 = Season.SPRING;
            //每次执行Season.SPRING获得是相同的对象,枚举类中的每个枚举都是单例模式的
            System.out.println(spring.equals(spring1));
            spring1.test();
        }
    }
    enum Season implements ITest {
        SPRING("春", "春暖花开"),//此处相当于调用有参的私有构造
        SUMMER("夏", "夏日炎炎"),
        AUTUMN("秋", "秋高气爽"),
        WINTER("冬", "寒风凛冽");
    
        private final String name;
        private final String desc;
        Season(String name, String desc) {
            this.name = name;
            this.desc = desc;
        }
        public void showInfo() {
            System.out.println(this.name + ":" + this.desc);
        }
        @Override
        public void test() {
            System.out.println("这是实现的ITest接口的test方法");
        }
    }
    
    interface ITest {
        void test();
    }

    Annotation(注解)概述

    Annotation其实就是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息

    Annotation可以像修饰符一样被使用,可用于修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息被保存在Annotation的name=value对中

    Anotation能被用来为程序元素(类,方法,成员变量等)设置元数据

    基本的Annotation

    • 使用Annotation时要在其前面增加@符号,并把该Annotation当成一个修饰符使用。用于修饰它支持的程序元素

    • 三个基本的Annotation:

      • @Override:限定重写父类方法,该注释只能用于方法

      • Deprecated:用于表示某个程序元素(类、方法等)已过时

      • @SuppressWarnings:抑制编译器警告

    自定义Annotation

    自定义新的Annotation类型使用@interface关键字

    Annotation的成员变量在Annotation定义中以无参数方法的形式来声明。其方法名和返回值定义了该成员的名字和类型

    可以在定义Annotation的成员变量时为其指定初始值,指定成员变量的初始值可使用default关键字

    没有成员定义的Annotation称为标记;包含成员变量的Annotation称为元数据的Annotation

    import java.lang.annotation.*;
    import java.util.ArrayList;
    import java.util.List;
    public class Test6 {
        public static void main(String[] args) {
            new TestB().test01();
            @SuppressWarnings({})
            List list = new ArrayList();
        }
    }
    class TestA {
        public void test() {
        }
    }
    class TestB extends TestA {
        @TestAnn(id = 100, desc = "姓名")
        String name;
        @Override
        public void test() {
            super.test();
        }
        @Deprecated
        public void test01() {
        }
    }
    @Target(ElementType.FIELD)//这个注解类是给其他类的属性做注解
    @Retention(RetentionPolicy.RUNTIME)//定义注解的声明周期
    @Documented
    @interface TestAnn {
        public int id() default 0;
        public String desc() default "";
    }
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Java
    相关文章 更多
    精品专题 更多
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    macOS软件

    正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

    IOS软件

    正软商城iOS软件专区,精选适用于iPhone和iPad的办公、学习、影音、设计、效率及AI应用,提供功能介绍、适用设备、系统要求和正版获取方式等信息。

    AI

    正软商城AI软件专区,汇集AI写作、AI绘画、AI视频、AI办公、AI编程、AI翻译、智能客服和数据分析等人工智能工具,提供功能介绍、适用平台、收费方式及正版购买信息。

    Mac软件 更多
    AirBuddy 3 macOS版
    AirBuddy 3 macOS版

    AirBuddy 3 是面向 macOS 的蓝牙外设增强工具,可集中查看 AirPods、Beats 与苹果设备电量,提供快速连接、播放控制、电量提醒、桌面小组件和多台 Mac 外设接力等功能。

    AirServer macOS版
    AirServer macOS版

    AirServer macOS版可把 Mac 转换为无线投屏接收端,通过 AirPlay 或 Google Cast 接收手机、平板和电脑画面,并支持多设备同时连接、高清镜像及会话录制,适合家庭娱乐、课堂教学、会议演示和应用展示。

    AnyDesk macOS版
    AnyDesk macOS版

    AnyDesk macOS版是一款适用于远程办公、设备维护和客户支持的远程桌面工具,可连接并操作异地计算机,支持文件传输、无人值守访问、会话权限控制及跨平台协作。

    Beamer 4 macOS版
    Beamer 4 macOS版

    Beamer 4是面向macOS的本地视频投屏工具,可将Mac中的影片投放到Apple TV、Chromecast及兼容设备,支持常见格式、多类字幕、环绕声、播放列表和电视遥控操作。

    Boom 3D macOS版
    Boom 3D macOS版

    Boom 3D macOS版是一款系统级音效增强工具,可为音乐、电影、游戏和流媒体提供3D虚拟环绕声、31段均衡器、音量增强及应用独立音量控制,并支持本地播放器与多种音频输出设备。

    Boris FX macOS版
    Boris FX macOS版

    Boris FX macOS版是一套面向剪辑、合成、调色及动态图形工作的专业后期工具,涵盖视觉特效、平面与三维跟踪、转描、画面修复、粒子动画和音频清理,可配合多种主流宿主软件使用。

    Capto macOS版
    Capto macOS版

    Capto 是面向 macOS 的屏幕截图、高清录屏与媒体编辑工具,支持区域及整屏捕获、网页长截图、双音轨处理、图片和视频标注、素材分类与多渠道分享,适合教师、学生、内容创作者及需要制作演示教程的用户。

    ChemDraw macOS版
    ChemDraw macOS版

    ChemDraw macOS版是一款面向化学学习、科研和制药工作的专业结构绘图工具,可创建分子、反应及生物聚合物图形,并提供结构整理、格式转换和科研成果展示能力。

    Cursor Crane macOS版
    Cursor Crane macOS版

    Cursor Crane 是一款仅面向 macOS 的键盘操控效率工具,可通过提示标签、网格、文字查找和窗口模式完成点击、滚动、定位与切换,并支持屏幕内容提取、脚本及工作流扩展。

    Deep Freeze 冰点还原 macOS版
    Deep Freeze 冰点还原 macOS版

    Deep Freeze 冰点还原 macOS版通过冻结系统配置,让受保护的Mac在重新启动后回到预设状态,并提供解冻空间、维护计划、密码保护及Apple Remote Desktop管理能力。

    Focusky macOS版
    Focusky macOS版

    Focusky macOS版是一款面向教学课件、商务汇报、产品展示和动画宣传内容的演示制作工具。它通过无限画布、路径编排、缩放旋转转场及多媒体编辑,将传统逐页幻灯片转化为更具空间感的动态演示。

    Folder Colorizer 2 macOS版
    Folder Colorizer 2 macOS版

    Folder Colorizer 2 macOS版是一款直观的文件夹外观定制工具,可更换颜色,添加表情、贴纸及图片背景,并支持批量处理、智能推荐和恢复默认样式,帮助用户更快辨认工作、学习与生活资料。

    WINDOWS 更多
    讯飞绘文 网页版
    讯飞绘文 网页版

    讯飞绘文网页版是科大讯飞推出的AI图文创作与内容运营工具,覆盖热点选题、文章生成、稿件校对、智能配图、排版发布和数据复盘等环节,适合自媒体创作者及内容团队在线使用。

    AirServer Windows版
    AirServer Windows版

    AirServer Windows版可把电脑变成AirPlay、Google Cast和Miracast无线投屏接收端,适合会议演示、课堂教学及家庭大屏分享。发送设备通常无需另装客户端,并可同时接收和智能排列多个镜像会话。

    AlwaysUp Windows版
    AlwaysUp Windows版

    AlwaysUp是一款面向Windows的系统服务注册与程序托管工具,可让普通应用、脚本及批处理在无人登录时随系统启动,并通过状态检测、异常重启、资源监控和邮件通知保障关键任务持续运行。

    AnyDesk Windows版
    AnyDesk Windows版

    AnyDesk Windows版是一款轻量化远程桌面与技术支持工具,可用于控制异地电脑、传输文件、远程打印及无人值守访问。它兼顾连接响应、安全权限和部署灵活性,适合个人远程办公、企业设备维护与客服支持。

    Boom 3D Windows版
    Boom 3D Windows版

    Boom 3D Windows版是一款面向音乐、电影和游戏场景的系统级音效增强工具,支持虚拟3D环绕声、31段均衡器、预设音效、应用音量控制及本地音乐播放,可配合耳机、扬声器和蓝牙耳机使用。

    Boris FX Windows版
    Boris FX Windows版

    Boris FX Windows版是一套服务于影视剪辑、视觉特效、运动跟踪、转描、图像修饰及音频修复的专业创作工具集合,可作为插件接入多种主流后期宿主,也包含可独立运行的应用,适合剪辑师、特效师与内容创作者使用。

    ChemDraw Windows版
    ChemDraw Windows版

    ChemDraw Windows版是一款面向化学研究、药物研发、材料科学和教学工作的专业结构绘图工具,可快速绘制分子、反应式及生物聚合物,并提供结构整理、格式转换、性质计算和科研文档协作能力。

    CODESOFT Windows版
    CODESOFT Windows版

    CODESOFT Windows版是一套企业级条码与RFID标签设计打印工具,可连接Excel、Access、SQL及云端数据源,支持变量、表单、GS1条码、数据库记录和多种工业打印机,适合制造、仓储、物流及合规标识场景。

    Deep Freeze 冰点还原 Windows版
    Deep Freeze 冰点还原 Windows版

    Deep Freeze 冰点还原 Windows版通过重启恢复技术保护系统盘及指定分区,自动撤销恶意程序、误操作和配置漂移造成的改动,并支持密码保护、解冻空间与多硬盘管理,适合学校机房、公共电脑、办公终端及家庭电脑使用。

    EDIUS Windows版
    EDIUS Windows版

    EDIUS 11 Windows版是一款面向影视制作、广播电视、纪录片、短视频及教育机构的专业非线性编辑工具,支持4K/8K、多格式混编、HDR调色、字幕、音频处理和后台渲染,并提供素材管理及丰富的导出预设。

    FastStone Capture Windows版
    FastStone Capture Windows版

    FastStone Capture Windows版是一款轻量级屏幕捕捉、录屏与图像编辑工具,可截取窗口、区域、菜单和滚动页面,并提供标注、模糊、取色、OCR、录音录像及多格式导出能力,适合办公说明、教程制作和问题反馈。

    Focusky Windows版
    Focusky Windows版

    Focusky Windows版是一款动画演示与交互课件制作工具,通过无限画布、缩放旋转镜头、模板素材和对象动画组织内容,可导入PPTX,并输出视频、EXE、PDF、网页等格式,适用于课堂教学、微课、商务汇报及产品展示。

    网站备案号:苏ICP备2026018738号-1 联系邮箱:bd@zhengruan.com

    Copyright ©2018-2026