Я только начал изучать java. Я пытаюсь написать программу, чтобы найти три элемента из трех разных массивов, таких как a + b + c = sum. (Я избегаю использовать три для петель, чтобы сделать его более эффективным)Как сохранить одно значение за раз в хэш-таблицу.
Я получаю следующее сообщение об ошибке.
10: error: cannot find symbol
HashMap<int> s = new HashMap<int>();
^
class HashMap
class YesorNo
Это мой код:
class YesorNo
{
// Function to check if there is an element from
// each array such that sum of the three elements
// is equal to given sum.
boolean findTriplet(int a1[], int a2[], int a3[],
int n1, int n2, int n3, int sum)
{
// Store elements of first array in hash table
HashMap<int> s = new HashMap<int>();
//unordered_set <int> s;
for (int i=0; i<n1; i++)
s.add(a1[i]);
// sum last two arrays element one by one
for (int i=0; i<n2; i++)
{
for (int j=0; j<n3; j++)
{
// Consider current pair and find if there
// is an element in a1[] such that these
// three form a required triplet
if (s.find(sum - a2[i] - a3[j]) != s.end())
return true;
}
}
return false;
}
// Driver Code
public static void main(String[] args)
{
YesorNo check = new YesorNo();
int a1[] = { 1 , 2 , 3 , 4 , 5 };
int n1 = a1.length;
int a2[] = { 2 , 3 , 6 , 1 , 2 };
int n2 = a2.length;
int a3[] = { 3 , 2 , 4 , 5 , 6 };
int n3 = a3.length;
int sum=9;
System.out.println(check.findTriplet(a1, a2, a3, n1, n2, n3, sum));
}
}
Также у вас есть необходимый импорт в вашей программе? – opensam
Используйте это, чтобы найти нужную коллекцию: http://www.sergiy.ca/img/doc/java-map-collection-cheat-sheet.gif для списка значений (например, массив, но без ограничения): List - > ArrayList ..., Map -> HashMap .. if for pairs –
azro