构建一个 java 程序,找出给定数组中数字的频率
Build a java program that finds the frequency of a number in a given array
我有一个包含几天温度的给定数组,我需要构建一个 class 来找出温度为 22°C 的天数。这是我所做的:
public class Frequence {
public static void main(String args[]){
int arr[] = {20,22,18,19,20,25,27,30,29,29,24,22,16,18,20,23,21,22,26,30,28,29,28,27,26,26,27,23,24,25};
System.out.println(count);
}
public static int frekuenc(int[] arr) {
int count=0;
int i=0;
while(i<arr.length) {
if(arr[i]==22) {
count=count+1;
i++;
return count;
}
}
}
}
我猜你的代码会无限循环,因为 i++
在 if
中。而是将其移动到循环的末尾。 return
语句应该完全移出循环。否则它将在第一场比赛中 return。
int count = 0;
int i = 0;
while(i<arr.length) {
if(arr[i]==22){
count++;
}
i++;
}
return count;
或者您可以使用更传统的 for
循环:
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]==22){
count++;
}
}
return count;
或增强的for
:
int count = 0;
for (int n : arr) {
if (n == 2) {
count++;
}
}
return count;
或者流:
return Arrays.stream(arr)
.filter(n -> n == 22)
.count();
public class Frequence {
public static void main(String args[]) {
int arr[] = { 20, 22, 18, 19, 20, 25, 27, 30, 29, 29, 24, 22, 16, 18, 20, 23, 21, 22, 26, 30, 28, 29, 28, 27,
26, 26, 27, 23, 24, 25 };
System.out.println(frekuenc(arr, 22));
}
public static int frekuenc(int[] arr, int tempToFind) {
HashMap<Integer, Integer> countMap = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
Integer temperature = new Integer(arr[i]);
if (countMap.get(temperature) != null) {
countMap.put(temperature, countMap.get(temperature) + 1);
} else {
countMap.put(temperature, 1);
}
}
return countMap.get(tempToFind);
}
}
我有一个包含几天温度的给定数组,我需要构建一个 class 来找出温度为 22°C 的天数。这是我所做的:
public class Frequence {
public static void main(String args[]){
int arr[] = {20,22,18,19,20,25,27,30,29,29,24,22,16,18,20,23,21,22,26,30,28,29,28,27,26,26,27,23,24,25};
System.out.println(count);
}
public static int frekuenc(int[] arr) {
int count=0;
int i=0;
while(i<arr.length) {
if(arr[i]==22) {
count=count+1;
i++;
return count;
}
}
}
}
我猜你的代码会无限循环,因为 i++
在 if
中。而是将其移动到循环的末尾。 return
语句应该完全移出循环。否则它将在第一场比赛中 return。
int count = 0;
int i = 0;
while(i<arr.length) {
if(arr[i]==22){
count++;
}
i++;
}
return count;
或者您可以使用更传统的 for
循环:
int count = 0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]==22){
count++;
}
}
return count;
或增强的for
:
int count = 0;
for (int n : arr) {
if (n == 2) {
count++;
}
}
return count;
或者流:
return Arrays.stream(arr)
.filter(n -> n == 22)
.count();
public class Frequence {
public static void main(String args[]) {
int arr[] = { 20, 22, 18, 19, 20, 25, 27, 30, 29, 29, 24, 22, 16, 18, 20, 23, 21, 22, 26, 30, 28, 29, 28, 27,
26, 26, 27, 23, 24, 25 };
System.out.println(frekuenc(arr, 22));
}
public static int frekuenc(int[] arr, int tempToFind) {
HashMap<Integer, Integer> countMap = new HashMap<>();
for (int i = 0; i < arr.length; i++) {
Integer temperature = new Integer(arr[i]);
if (countMap.get(temperature) != null) {
countMap.put(temperature, countMap.get(temperature) + 1);
} else {
countMap.put(temperature, 1);
}
}
return countMap.get(tempToFind);
}
}