2

我有一组正在输出的锁组合。我想确保没有重复组合。这些组合不仅仅是整数。为了格式简单,我将它们全部转换为字符串。允许我循环和比较每个字符串以便没有重复的代码行是什么?有任何想法吗?例如二维数组

谢谢你。

4

3 回答 3

3

将锁组合存储在一组中可能更容易。这将更容易确保它们是独一无二的。

这也会快得多,因为您不需要将每个字符串与数据集中的所有其他字符串进行比较......

于 2012-06-26T17:54:32.887 回答
1

通过Arrays.asList(T... a)将每个组合封装为 List以保持它们的顺序并将它们存储在HashSet中,以确保contains(Object o)上的唯一性和恒定时间性能,以确定它是否已经存在。

import java.util.Arrays;
import java.util.List;
import java.util.HashSet;

public class UniqueLocks {
    public static void main (String[] args) {
        List lock1 = Arrays.asList("1", "22", "333");
        List lock2 = Arrays.asList("a", "bb", "ccc");
        List lock3 = Arrays.asList("eee", "bbb", "ccc");

        HashSet uniqueLocks = new HashSet(Arrays.asList(lock1, lock2, lock3));

        List duplicateLock = Arrays.asList("1", "22", "333");

        if (uniqueLocks.contains(duplicateLock)) {
            System.out.println("Lock [" + duplicateLock + "] already present.");
        }
    }
}
于 2012-06-26T20:21:03.397 回答
0

不确定您打算使用哪种语言执行此操作,但您可以检查两个字符串在 C# 中是否具有相同的值,如下所示

String myString = "Hello World!"; 
String myString2 = "Hello World!"; 

if(myString.equals(myString2)) {
    //do something cause we have a match

}

如果你有一个字符串数组,你可以遍历它们。

它在其他语言(如 java、vb.net)中非常相似。

编辑:在我开始写答案后添加了 java 标签.. 抱歉

希望这可以帮助,

于 2012-06-26T17:53:43.787 回答