Домой Учебники по Java и J2EE Как найти общие элементы двух несортированных массивов в Java?

Как найти общие элементы двух несортированных массивов в Java?

1202
0

Как найти общие элементы двух несортированных массивов? Ниже приведен простой код Java, который показывает это.

шаги:

  • Найдите 1-й маленький массив.
  • Переберите маленький массив и найдите элементы в самом большом массиве.
  • В случае совпадения добавьте его в отдельный новый массив.
  • Показать окончательный массив .

Подход-1:

CrunchifyIntersection.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
пакет ком . хрустеть ;
Импортировать Java. Util. HashSet ;
/ **
* @author Crunchify.com
* /
общественности учебный класс CrunchifyIntersection {
общественности статический недействительным main ( Строка [ ] аргументы ) {
         Целое число [ ] arrayOne знак равно { 1 , 4 , 5 , 2 , 7 , 3 , 9 } ;
         Целое число [ ] arrayTwo знак равно { 5 , 2 , 4 , 9 , 5 } ;
         Целое число [ ] общий знак равно CrunchifyIntersection . findCommon ( arrayOne , arrayTwo ) ;
         Система. вне. печать ( «Общие элементы между двумя массивами:» ) ;       
         для ( целое число запись : общий ) {
             Система. вне. печать ( запись + ) ;
         }
}
   общественности статический Целое число [ ] findCommon ( Целое число [ ] arrayOne , Целое число [ ] arrayTwo ) {
     Целое число [ ] arrayToHash ;
     Целое число [ ] arrayToSearch ;
     если ( arrayOne . длина < массив двух . длина ) {
     arrayToHash знак равно arrayOne ;
     arrayToSearch знак равно arrayTwo ;
     } еще {
     arrayToHash знак равно arrayTwo ;
     arrayToSearch знак равно arrayOne ;
     }
         HashSet пересечение знак равно новый HashSet ( ) ;
         HashSet hashedArray знак равно новый HashSet ( ) ;
         для ( целое число запись : arrayToHash ) {
             hashedArray . добавить ( запись ) ;
         }
         для ( целое число запись : arrayToSearch ) {
             если ( hashedArray . содержит ( запись ) ) {
                 пересечение . добавить ( запись ) ;
             }
         }
         вернуть пересечение . toArray ( новый Целое число [ 0 ] ) ;
     }
}

Выход:

1
Общие элементы между двумя массивами : 2 4 5 9

Подход-2

Ниже предложен подход нашего читателя Maksudur rahman как вы видите в разделе комментариев ниже. Пожалуйста, найдите здесь полный пример.

CrunchifyIntersection.java

Джава
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
пакет crunchify. ком . учебные пособия ;
Импортировать Java. Util. Массивы ;
Импортировать Java. Util. LinkedHashSet ;
Импортировать Java. Util. Установить ;
/ **
* @author Crunchify.com
*
* /
общественности учебный класс CrunchifyIntersection {
общественности статический недействительным main ( Строка [ ] аргументы ) {
Целое число [ ] arrayOne знак равно { 1 , 4 , 5 , 2 , 7 , 3 , 9 } ;
Целое число [ ] arrayTwo знак равно { 5 , 2 , 4 , 9 , 5 } ;
Установить crunchifySet1 знак равно новый LinkedHashSet ( Массивы . AsList ( arrayOne ) ) ;
Установить crunchifySet2 знак равно новый LinkedHashSet ( Arrays . AsList ( arrayTwo ) ) ;
за ( Целое число crunchify : crunchifySet2 ) {
если ( ! crunchifySet1 . add ( crunchify ) ) {
Система. вне. println ( «Двойной элемент массива — это» + хрустеть ) ;
}
}
}
}

Выход:

1
2
3
4
Дубликат элемент массива является 5
Дубликат элемент массива является 2
Дубликат элемент массива является 4
Дубликат элемент массива является 9
Как найти общие элементы двух несортированных массивов в Java?

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Реализация простого Threadsafe Cache с использованием HashMap без использования синхронизированной коллекции

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь