* 思路: * 从头遍历_前端遍历数组出来的字符串怎么和其">
当前位置:   article > 正文

程序设计-比较两个字符串数组是否相等,数组元素是形如“aa=xx“的字符串,并且我们认为“aa=xx“和“xx=aa“是相等的。(Java)_前端遍历数组出来的字符串怎么和其他字符串进行比较相等呢

前端遍历数组出来的字符串怎么和其他字符串进行比较相等呢

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程

  1. package live.every.day.Programming;
  2. import java.util.HashSet;
  3. import java.util.Set;
  4. /**
  5. * 比较两个字符串数组是否相等,数组元素是形如"aa=xx"的字符串,并且我们认为"aa=xx"和"xx=aa"是相等的。
  6. * <p>
  7. * 思路:
  8. * 从头遍历第一个数组,在第二个数组中查找与其内容相同的元素,若找到则做连线标记。
  9. * 检查标记,如果两个数组中所有元素都被标记了,则返回true;否则返回false。
  10. *
  11. * @author Created by LiveEveryDay
  12. */
  13. public class CompareKeyValuePairArray {
  14. public static void main(String[] args) {
  15. String[] arr1 = {"aa=ww", "bb=xx", "cc=yy", "dd=zz", "dd=zz", "xx=bb"};
  16. String[] arr2 = {"zz=dd", "ww=aa", "yy=cc", "bb=xx", "dd=zz"};
  17. System.out.printf("Is equal: %s", isArrayEqual(arr1, arr2));
  18. }
  19. private static boolean isElementEqual(String e1, String e2) {
  20. if (e1.contentEquals(e2)) {
  21. return true;
  22. }
  23. if (e1.contentEquals(new StringBuilder(e2).reverse())) {
  24. return true;
  25. }
  26. return false;
  27. }
  28. public static boolean isArrayEqual(String[] arr1, String[] arr2) {
  29. if (arr1 == null || arr2 == null) {
  30. return false;
  31. }
  32. Set<Integer> set1 = new HashSet<>();
  33. Set<Integer> set2 = new HashSet<>();
  34. for (int i = 0; i < arr1.length; i++) {
  35. for (int j = 0; j < arr2.length; j++) {
  36. if (isElementEqual(arr1[i], arr2[j])) {
  37. set1.add(i);
  38. set2.add(j);
  39. }
  40. }
  41. }
  42. if (set1.size() == arr1.length && set2.size() == arr2.length) {
  43. return true;
  44. } else {
  45. return false;
  46. }
  47. }
  48. }
  49. // Output:
  50. /*
  51. Is equal: true
  52. */
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/947023
推荐阅读
相关标签
  

闽ICP备14008679号