深夜の評価: iFlytek Spark Model と FuncGPT (Hui Function)、どちらが優れていますか?

プログラマーとして、さまざまな状況で 2 つのリスト内の重複要素を見つける必要がある場合があります。一般的なアプリケーション シナリオをいくつか示します。

データ クリーニング: 異なるソースからの 2 つのリストがある場合、重複データが含まれている可能性があります。これらの重複要素を見つけると、データをクリーニングし、データの精度と品質を向上させることができます。

データの結合: 2 つのリストを 1 つに結合する必要がある場合、重複する要素を見つけて処理する必要があります。そうしないと、データの重複が発生する可能性があります。

データ重複チェック: 場合によっては、データの品質を検出したり、考えられる問題を検出したりするために、2 つのリスト内の重複要素を見つけることが必要になることがあります。

分析と視覚化: 場合によっては、2 つのリスト内の重複要素を見つけて、さらなるデータ分析と視覚化を行う必要があります。たとえば、これらの繰り返し要素を使用して、より複雑なグラフを作成したり、より詳細な統計分析を実行したりできます。

権限管理: ユーザーまたはエンティティ (部門、役割など) のリストを処理する場合、重複するエンティティを検索して管理する必要がある場合があります。たとえば、権限をさらに管理するには、2 つのリストで重複するユーザーまたは部門を特定する必要がある場合があります。

開発者はリクエストを受け取った後、できるだけ早く関連するコードをオンラインで検索し、1つずつチェックすることがよくありますが、コメントがない、解決策が長すぎる、アーキテクチャが複雑すぎるなどの問題に直面することがあります。それでも指示に従う必要がありますが、実際のニーズに応じて変更が加えられます。この一連の手順には少なくとも 2 時間かかります。

FuncGPT を使用するには、インターフェイスに次の特定の要件とパラメーター要件を入力し、[コードの生成] をクリックするだけで、すぐに使用できるコードを 20 秒で生成できます。

//クラス名: ListUtils

//関数名: findDuplicateElements

//関数: 2 つのリスト内の重複する要素を検索します。

// 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 文件。

何かを作るときに一家族の意見だけを聞くことができないことは誰もが知っていますが、iFlytek の Spark モデルがこの機能をどのように実現しているかを見てみましょう。

Java では、HashSet を使用して 2 つのリスト内の重複要素を検索できます。以下に例を示します。

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);

    }

}

では、上記 2 つのコードのうちどちらが優れているのでしょうか?
ウェン・シンはこう言いました。

注: コード 1 は FuncGPT (Hui 関数) によって生成され、コード 2 は iFlytek Spark モデルによって生成されます。

「両方のコードの目的は、2 つのリスト内の重複要素を見つけることです。対照的に、コード 1 の利点は次の点にあります。

タイプ セーフティ:コード 1 は汎用の <T> を使用しているため、整数だけでなくあらゆる型のリストを処理できます。コード 2 の例では整数が使用されているため、一般的な用途が制限されています。

空のリストの処理:コード 1 はリストが空である可能性がある状況を考慮していますが、コード 2 は空のリストを処理するときに例外をスローする可能性があります。

適切にカプセル化されている:コード 1 は機能をクラスにカプセル化し、明確な API ドキュメントを提供します。そうすることで、コードが理解しやすくなり、使いやすくなります。コード 2 では、すべてのロジックが main メソッドに配置されていますが、十分に明確ではありません。

高い可読性:コード 1 では、読みやすくするために明確な変数名とメソッド名が使用されています。コード 2 の変数名とメソッド名は明確ではありません。

より効率的: 2 つのコードの基本的な考え方は同じですが、コード 1 は Set コレクションを使用して list1 の要素を格納するため、O(1) 時間計算量の検索操作を使用して効率を向上できます。コード 2 では ArrayList を使用しており、要素の検索効率は O(n) です。

戻り値の型は明確です。コード 1 は List<T> 型を返します。これは、要素のコレクションを返すことを明確に示しています。コード 2 の出力は HashSet ですが、返されたセットが要素のコレクションであることを明確に示していません。

一般に、コード 1 の設計はより合理的で、カプセル化と可読性が優れており、さまざまな境界条件が考慮され、効率が最適化されています。

AI 支援プログラミング ツールとして FuncGPT (Hui Function) を使用することで、検索エンジンに依存した従来のコードの記述方法が変わり、開発者のプログラミング効率が大幅に向上したと言えます。明確な注釈と信頼できる品質 Spectrum は、開発者の効率と品質の両方を向上させるのに役立ちます。
FuncGPT(Hui Function)無料利用リンク:
https ://a.d4t.cn/ftrAMf

雷軍氏: Xiaomi の新オペレーティング システム ThePaper OS の正式版がパッケージ化されました Gome App の宝くじページのポップアップ ウィンドウが創設者を侮辱 米 政府が NVIDIA H800 GPU の中国への輸出を制限 Xiaomi ThePaper OS インターフェース マスターが Scratch を使用して RISC-V シミュレータを操作し、正常に実行されました Linux カーネル RustDesk リモート デスクトップ 1.2.3 がリリースされ、Wayland サポートが強化されました Logitech USB レシーバーを取り外した後、Linux カーネルがクラッシュしました DHH の「パッケージング ツール」のシャープ レビュー": フロントエンドはまったくビルドする必要がありません (No Build) JetBrains が技術文書を作成するために Writerside を起動 Node.js 21 用ツールが正式リリース
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/4868096/blog/10120576