首页 > 其他分享 >深夜测评:讯飞星火大模型vs FuncGPT (慧函数),到底哪家强?

深夜测评:讯飞星火大模型vs FuncGPT (慧函数),到底哪家强?

时间:2023-10-19 18:24:48浏览次数:41  
标签:重复 list1 代码 元素 List list2 vs 星火 FuncGPT

 

 作为一名程序员,我们可能在多种情况下需要找出两个List中的重复元素。以下是一些常见的应用场景:

 

数据清理:如果你有两个来自不同源的列表,可能含有重复数据,找出这些重复元素可以帮助你清理数据,提高数据的准确性和质量。

 

数据合并:当你需要将两个列表合并成一个时,找出并处理重复元素是必要的,否则可能导致数据重复。

 

数据查重:在某些情况下,你可能需要查找两个List中的重复元素以检测数据的质量或查找可能存在的问题。

 

分析和可视化:有时,找出两个List中的重复元素是为了进行进一步的数据分析和可视化。例如,你可以使用这些重复元素来创建更复杂的图表或进行更深入的统计分析。

 

权限管理:在处理用户或实体(如部门、角色等)的列表时,可能会需要查找和管理重复的实体。例如,你可能需要找出两个列表中的重复用户或部门,以进行进一步的权限管理。

 

开发人员在接到需求后,往往第一时间是上网搜索相关代码,一个个查看,可能面临没注释、解决方案太冗长、架构太复杂等情况;就算在网上找到了合适的代码,还需要根据实际的需求,进行修改,这一套流程下来起码 2 个小时就没了。

 

而使用 FuncGPT (慧函数) ,只需在界面输入以下具体的需求及参数要求,点击生成代码,20 秒就可以生成拿来即用的代码了。

// 类名:ListUtils

// 函数名:findDuplicateElements

// 函数功能:找出两个List中的重复元素

// POM依赖包:无

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

 

public class ListUtils {

    /**

     * 找出两个List中的重复元素

     * @param list1 第一个List

     * @param list2 第二个List

     * @return 重复的元素集合

     */

    public static <T> List<T> findDuplicateElements(List<T> list1, List<T> list2) {

        Set<T> set1 = new HashSet<>(list1); // 将List1转换为Set,去除重复元素

        Set<T> duplicateSet = new HashSet<>();

        

        for (T element : list2) { // 遍历List2的元素

            if (set1.contains(element)) { // 如果Set1中包含List2的元素

                duplicateSet.add(element); // 将重复的元素添加到重复元素的Set中

            }

        }

        

        return new ArrayList<>(duplicateSet); // 将重复元素的Set转换回List并返回

    }

}

 

// 函数示例

// 找出两个List中的重复元素示例

// 入参:list1,第一个List

//      list2,第二个List

// 出参:duplicates,重复的元素集合

// 调用示例:

// List<Integer> list1 = Arrays.asList(1, 2, 3, 4, 5);

// List<Integer> list2 = Arrays.asList(4, 5, 6, 7, 8);

// List<Integer> duplicates = ListUtils.findDuplicateElements(list1, list2);

// System.out.println(duplicates);

// 输出结果:例如,第一个List为:[1, 2, 3, 4, 5],第二个List为:[4, 5, 6, 7, 8]

// 则输出结果为:[4, 5]

 

```

// 温馨提示:以上代码由 FuncGPT 生成,编译打包请使用 ListUtils.java 文件。

 

我们都知道,做任何东西不能光听一家之言,下面来看看讯飞的星火大模型是怎么实现这一功能的:

在Java中,可以使用HashSet来找出两个List中的重复元素。以下是一个示例:

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

 

public class FindDuplicates {

    public static void main(String[] args) {

        List<Integer> list1 = new ArrayList<>();

        List<Integer> list2 = new ArrayList<>();

 

        list1.add(1);

        list1.add(2);

        list1.add(3);

        list1.add(4);

 

        list2.add(3);

        list2.add(4);

        list2.add(5);

        list2.add(6);

 

        HashSet<Integer> set = new HashSet<>(list1);

        set.retainAll(list2);

 

        System.out.println("重复的元素是: " + set);

    }

}

那么,以上这两段代码哪段更好呢?
文心一言是这么说的:

注:代码1为FuncGPT(慧函数)所生成,代码2为科大讯飞星火大模型所生成。

“两段代码的目的都是找出两个列表中的重复元素。相比之下,代码1的优势表现在以下几个方面:

类型安全:代码1使用了泛型 <T>,这样可以处理任何类型的列表,而不仅仅是整数。代码2中的示例使用了整数,限制了其应用的广泛性。

处理空列表:代码1考虑了列表可能为空的情形,而代码2在处理空列表时可能会引发异常。

封装良好:代码1将功能封装在一个类中,并提供了清晰的API文档。这样做可以使代码更易于理解和使用。而代码2将所有逻辑都放在main方法中,不够清晰。

可读性强:代码1使用了明确的变量名和方法名,使其可读性更强。而代码2中的变量名和方法名并不清晰。

效率更高:虽然两段代码的基本思路是一样的,但是代码1使用了Set集合来存储list1的元素,这样可以利用O(1)时间复杂度的查找操作来提高效率。而代码2使用的是ArrayList,查找元素的效率是O(n)。

返回类型明确:代码1返回的是List<T>类型,明确地表示了返回的是元素的集合。而代码2的输出是HashSet,没有明确指出返回的是元素的集合。

总的来说,代码1的设计更为合理,封装性好,可读性强,并且考虑了各种边界情况,还对效率进行了优化。”

 

可以说,以 FuncGPT(慧函数)作为AI 辅助编程工具,改变了传统靠搜索引擎写代码的方式,极大地提高开发者的编程效率,其生成的函数、方法等更具体,注释清晰,质量靠谱,助力开发人员效率和质量双提升。
FuncGPT(慧函数)免费使用链接:https://a.d4t.cn/ftrAMf

标签:重复,list1,代码,元素,List,list2,vs,星火,FuncGPT
From: https://www.cnblogs.com/feisuanyz/p/17775336.html

相关文章

  • 从文心大模型4.0与FuncGPT:用AI为开发者打开新视界
    今天,在百度2023世界大会上,文心大模型4.0正式发布,而在大洋的彼岸,因为大模型代表ChatGPT之类的AI编码工具来势汹汹,作为全世界每个开发者最爱的代码辅助网站,StackOverflow的CEOPrashanthChandrasekar宣布,StackOverflow裁员一百多人,占员工总数的28%。 在大模型席卷全球之前,Stac......
  • vscode远程ubuntu,python不识别opencv的函数
    将opencv-python更新到4.8版本以上https://github.com/microsoft/pylance-release/issues/4838......
  • vs中/EHa、/EHs、/EHsc的区别
    官方说明https://learn.microsoft.com/zh-cn/cpp/build/reference/eh-exception-handling-model?view=msvc-170https://learn.microsoft.com/zh-cn/cpp/cpp/structured-exception-handling-c-cpp?view=msvc-170下面是一个人测试的结果展示https://blog.csdn.net/dan452819043/......
  • vs2019设置添加类和接口自动添加作者信息
    参考:https://www.cnblogs.com/minuhy/p/14058721.html 一、找到VisualStudio2019安装目录如我的:D:\ProgramFiles(x86)\MicrosoftVisualStudio\2019\Community\Common7\IDE\ItemTemplates\CSharp\Code\2052二、修改类模板文件 #region<<版本注释>>/*---......
  • 从基础到复合:一文看懂jvs规则引擎中的变量进化论
    JVS-rules中的“变量”概念与编程语言中的变量类似,但它们通常在规则系统中处理条件判断、业务结果复制场景,如下所示:条件判断:在规则引擎中,规则通常由两个部分组成:条件和分支。变量用于描述条件部分中的数据和状态。例如,一个规则可能是:“如果温度超过30度,则执行打开空调的分支”。这......
  • VS2015重构代码结构时出现:【/langversion 的选项“7.3”无效;必须是 ISO-1、ISO-2、3
    重构代码结构时出现:【/langversion的选项“7.3”无效;必须是ISO-1、ISO-2、3或Default在XXXX类库】......
  • 在树莓派上使用VSCode开发C#程序
    在树莓派上使用VSCode开发C#程序使用VSCode在树莓派上写C#程序安装VSCode前往VSCode的官网下载VSCode,并安装https://code.visualstudio.com/下载.debArm64然后打开终端cdDownLoad切换到下载文件夹sudodpkg-iVScode........安装包或者参照博客树莓派安装一......
  • vscode快捷键
    alt+up行上移alt+down行下移alt+left转到上一次操作alt+right转到下一次操作alt+F3下一个更改Ctrl+N新建文件Ctrl+O打开文件Ctrl+KS保存所有Ctrl+KCtrl+S调出所有快捷键Ctrl+KCtrl+W关闭所有Ctrl+F4关闭标签ctrl+p按名称搜索文件ctrl+b侧边栏显隐ctrl+f搜......
  • 低代码开发重要工具:JVS列表页与表单配置全解析
    在JVS低代码开发平台中,操作页面与数据模型之间关系是非常紧密的,一个简单列表页、表单的交互,这个过程我们可以大致分为几个步骤:页面与数据模型的说明创建目录1、创建列表页2、列表页配置设置列表页的字段,保存(系统会自动创建对应的数据模型)刷新预览列表页配置的效果设置列表新增按钮......
  • 使用vs自带的dumpbin工具 查询依赖库
    dumpbin工具 使用vs自带的dumpbin工具:  打开VS命令行2.执行“dumpbin/dependents+dll/exe路径” ......