Java-如何不打印重复/控制从数组打印值

Java-如何不打印重复/控制从数组打印值,java,arrays,Java,Arrays,我有一个数组,它保存文件中分数的重复计数,1、2、3等。我需要打印出现的分数,但我只需要打印一次分数。我遇到的问题是,我打印每一个分数,不管它重复多少次。到目前为止,我提出的代码是: boolean[] controlsFractionPrinting = new boolean[lengthOfFile]; Arrays.fill(controlsFractionPrinting, true); for (int i = 0; i < lengthOfFile; i++) { f

我有一个数组,它保存文件中分数的重复计数,
1、2、3等
。我需要打印出现的分数,但我只需要打印一次分数。我遇到的问题是,我打印每一个分数,不管它重复多少次。到目前为止,我提出的代码是:

boolean[] controlsFractionPrinting = new boolean[lengthOfFile];
Arrays.fill(controlsFractionPrinting, true);
for (int i = 0; i < lengthOfFile; i++) {
    for (int j = 0; j < lengthOfFile; j++) {
        if (count[i] > 1) {
            if (count[i] == count[j])
                controlsFractionPrinting[j] = false;
        }
    }
}
System.out.println(Arrays.toString(controlsFractionPrinting));
System.out.println(Arrays.toString(count));
因此,
controlsFractionPrinting
应该看起来像

[true, false, true, true, false, ...].

任何帮助都将不胜感激。

此解决方案的基础是将已看到的每个值存储到地图中,以便可以查询地图以查看其是否已包含值:

boolean[] controlsFractionPrinting = new boolean[lengthOfFile];

// create a map to contain the numbers that have been used
Map<Integer, Object> usedMap = new HashMap<Integer, Object>();
for (int i = 0; i < lengthOfFile; i++) {

    // set the value to false if the usedMap already contains the value, otherwise true
    controlsFractionPrinting[i] = !usedMap.containsKey(count[i]);

    // now add the value to the map to signify it has been 'used'
    usedMap.add(count[i], null);
}

System.out.println(Arrays.toString(controlsFractionPrinting));
System.out.println(Arrays.toString(count));
boolean[]controlsFractionPrinting=新的boolean[lengthOfFile];
//创建包含已使用的数字的地图
Map usedMap=newhashmap();
对于(int i=0;i
您可以尝试以下方法:

int[] arr = {1,2,1,3,3,2,2,2};
List<Integer> exists = new ArrayList<Integer>();
List<Boolean> result = new ArrayList<Boolean>();
for(int i: arr){
    if(exists.contains(i)){
        result.add(false);
    } else {
        result.add(true);
        exists.add(i);
    }
}
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(result.toArray()));
int[]arr={1,2,1,3,3,2,2,2};
List exists=new ArrayList();
列表结果=新建ArrayList();
用于(int i:arr){
如果(存在,包含(i)){
结果。添加(假);
}否则{
结果。添加(true);
存在。添加(i);
}
}
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(result.toArray());

我想你有打字错误。应该是!usedMap.containsKey(count[i]):我认为这是Map.containsKey()
int[] arr = {1,2,1,3,3,2,2,2};
List<Integer> exists = new ArrayList<Integer>();
List<Boolean> result = new ArrayList<Boolean>();
for(int i: arr){
    if(exists.contains(i)){
        result.add(false);
    } else {
        result.add(true);
        exists.add(i);
    }
}
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(result.toArray()));