تصف هذه المقالة تنفيذ Java لوظيفة تشابه جيب التمام لحساب المصفوفة المتفرقة. شاركه للرجوع إليه ، على النحو التالي:
استيراد java.util.hashmap ؛ الطبقة العامة myudf { /*** udf تقييم الواجهة** udf هو واحد إلى واحد على مستوى السجل ، ومفرد أو واحد إلى واحد في الحقل. يتم استدعاء طريقة التقييم مرة واحدة في كل سجل ، والإدخال كحقل واحد أو أكثر ، والإخراج كحقل واحد*/ التقييم المزدوج العام (السلسلة A ، السلسلة B) {// TODO: يرجى تعديل المعلمات والقيم الإرجاع حسب الحاجة ، وتنفيذ المنطق الخاص بك هنا إذا (a == null b == null) سلسلة temp1 [] = a.split ("،") ؛ سلسلة temp2 [] = b.split ("،") ؛ if (temp1 == null || temp2 == null) {return 0.0 ؛ } hashmap <string ، double> map1 = new HashMap <string ، double> () ؛ HashMap <string ، double> map2 = new hashmap <string ، double> () ؛ لـ (temp string: temp1) {string t [] = temp.split (":") ؛ map1.put (t [0] ، double.parsedouble (t [1])) ؛ } لـ (temp: temp2) {string t [] = temp.split (":") ؛ map2.put (t [0] ، double.parsedouble (t [1])) ؛ } double fenzi = 0 ؛ double fenmu1 = 0 ؛ لـ (السلسلة I: map1.keyset ()) {double value = map1.get (i) ؛ if (map2.get (i)! = null) {fenzi+= value*map2.get (i) ؛ } fenmu1+= value*value ؛ } double fenmu2 = 0 ؛ لـ (double i: map2.values ()) {fenmu2+= i*i ؛ } double fenmu = math.sqrt (fenmu1)*math.sqrt (fenmu2) ؛ إرجاع فينزي/فينمو ؛ } الفراغ الثابت العام (سلسلة [] args) {string a = "12: 500،14: 100،20: 200" ؛ السلسلة B = "12: 500،14: 100،30: 100" ؛ myudf myudf = new myudf () ؛ system.out.println (myudf.evalty (a ، b)) ؛ }}نتائج التشغيل:
0.9135468796041984
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض الموضوعات: "بنية بيانات Java وبرنامج تعليمي الخوارزمية" ، "ملخص" Tips Java ".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.