Unremitter 2011-11-17 10:00
浏览 267
已采纳

String数组的比较问题

有两个String数组.需要比较里面元素值是否相同.需详细比较.但顺序不限制.如:
[code="java"]
String[] strs = new String[]{"1","2","2"};
String[] strs1 = new String[]{"1","2","3"};
[/code]
这样是成功的.再如:
[code="java"]
String[] strs = new String[]{"1","3","2"};
String[] strs1 = new String[]{"1","2","3"};
[/code]
这样顺序不同,但也是相同的.再如
[code="java"]
String[] strs = new String[]{"1","2","2"};
String[] strs1 = new String[]{"1","2","3"};
[/code]
这样是比较不成功的.

大家帮忙看看有什么好的办法比较.多谢~

  • 写回答

2条回答 默认 最新

  • jiangguangxian 2011-11-17 10:08
    关注

    so easy :

    请参考getHashCode()方法,

    写一个数组的扩展方法,利用每个数组元素值来组合一个串来进行比较,拿你的这个例子为准,可以通过对每个数组进行组合:

    1. 排序:
      String[] strs = new String[]{"1","3","2"};
      排序后:strs = ["1","2","3"] ,这里排序是根据字符串,所有的字符串排序都是相同规则,所以你不用担心不一致。

    2. 组合串:
      "1_2_3",假设hashcode生成了这样的结果

    3. 两个串生成的hashcode进行比较:
      如果是"1_2_3" 和"1_2_3"比较,便相同,
      如果是"1_2_2" 和"1_2_3"比较,便不同

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序
  • ¥15 onvif+openssl,vs2022编译openssl64
  • ¥15 iOS 自定义输入法-第三方输入法
  • ¥15 很想要一个很好的答案或提示
  • ¥15 扫描项目中发现AndroidOS.Agent、Android/SmsThief.LI!tr
  • ¥15 怀疑手机被监控,请问怎么解决和防止
  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区