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()));