Java Tekrar Eden Sayıları Bulma

Gewert34456

Centipat
Katılım
27 Ekim 2019
Mesajlar
35
Java'yla bir tamsayı dizisindeki tekrar eden sayıları ve ilgili sayıların ne kadar tekrar ettiğini hesaplayan program.
Örneğin: İnt[] a={3, 5, 8, 5, 3, 1, 2, 8, 7, 8}; a dizisinde 3 iki defa, 5 iki defa, 8 üç defa tekrar etmiştir.
 
Son düzenleyen: Moderatör:
Java:
package com.huseyinaydin;

public class App {

    public static void main(String[] args) {
        int dizi[] = { 3, 5, 8, 5, 3, 1, 2, 8, 7, 8 };
        int sekizSayiAdeti = 0,yediSayiAdeti = 0,besSayiAdeti = 0,ucSayiAdeti = 0, ikiSayiAdeti = 0, birSayiAdeti = 0;
        for (int i = 0; i < dizi.length; i++) {
            if (dizi[i] == 8)
                sekizSayiAdeti++;
            else if (dizi[i] == 7)
                yediSayiAdeti++;
            else if (dizi[i] == 5)
                besSayiAdeti++;
            else if (dizi[i] == 3)
                ucSayiAdeti++;
            else if (dizi[i] == 2)
                ikiSayiAdeti++;
            else if (dizi[i] == 1)
                birSayiAdeti++;
        }
        System.out.println("8 den şu kadar adet var : " + sekizSayiAdeti);
        System.out.println("7 den şu kadar adet var : " + yediSayiAdeti);
        System.out.println("5 den şu kadar adet var : " + besSayiAdeti);
        System.out.println("3 den şu kadar adet var : " + ucSayiAdeti);
        System.out.println("2 den şu kadar adet var : " + ikiSayiAdeti);
        System.out.println("1 den şu kadar adet var : " + birSayiAdeti);

    }

}
 
Java:
package com.huseyinaydin;

public class App {

public static void main(String[] args) {
int dizi[] = { 3, 5, 8, 5, 3, 1, 2, 8, 7, 8 };
int sekizSayiAdeti = 0,yediSayiAdeti = 0,besSayiAdeti = 0,ucSayiAdeti = 0, ikiSayiAdeti = 0, birSayiAdeti = 0;
for (int i = 0; i < dizi.length; i++) {
if (dizi[I] == 8)
sekizSayiAdeti++;
else if (dizi[I] == 7)
yediSayiAdeti++;
else if (dizi[I] == 5)
besSayiAdeti++;
else if (dizi[I] == 3)
ucSayiAdeti++;
else if (dizi[I] == 2)
ikiSayiAdeti++;
else if (dizi[I] == 1)
birSayiAdeti++;
}
System.out.println("8 den şu kadar adet var : " + sekizSayiAdeti);
System.out.println("7 den şu kadar adet var : " + yediSayiAdeti);
System.out.println("5 den şu kadar adet var : " + besSayiAdeti);
System.out.println("3 den şu kadar adet var : " + ucSayiAdeti);
System.out.println("2 den şu kadar adet var : " + ikiSayiAdeti);
System.out.println("1 den şu kadar adet var : " + birSayiAdeti);

}

}

Sayilari onceden bilmiyorsun tabii ki. Boyle kod mu olur. (Moderatore not: Retorik soru cumlesinin sonuna soru isareti konulmaz her zaman, gramerde hata yok.)
 
Son düzenleme:
Sayilari onceden bilmiyorsun tabii ki :) Boyle kod mu olur?

Sayıları konu sahibi önceden vermiş.
Kodu güncelledim.
Java:
package com.huseyinaydin;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class App {

    public static void main(String[] args) {
        int dizi[] = { 3, 5, 8, 5, 3, 1, 2, 8, 7, 8 };
        List<Integer> diziListesi = new ArrayList<>();
        List<Integer> diziListesiYedek = new ArrayList<>();
        List<Integer> sayiAdetleri = new ArrayList<>();
        List<String> sayiAdetlerii = new ArrayList<>();
        for(int i = 0; i < dizi.length; i++) {
            diziListesi.add(dizi[i]);
            diziListesiYedek.add(dizi[i]);
        }
        diziListesi = diziListesi.stream().distinct().sorted().collect(Collectors.toList());
        System.out.println("--------------");
        diziListesi.forEach(i->{
            System.out.println(i);
            sayiAdetleri.add(0);
        });
        System.out.println("--------------");
        int index = 0;
        for(int i = 0; i < diziListesi.size(); i++) {
            index = 0;
            for(int j = 0; j < diziListesiYedek.size(); j++) {
                if(diziListesiYedek.get(j) == diziListesi.get(i)) {
                    System.out.println(diziListesi.get(i));
                    System.out.println(diziListesiYedek.get(j));
                    index++;
                    
                }
            }
            sayiAdetleri.set(i, index);
        }
        System.out.println("-----------------");
        //sayiAdetleri.forEach(i->System.out.println(" dizide şu kadar var " + i));
        for(int i = 0; i < diziListesi.size(); i++) {
            System.out.println(diziListesi.get(i) + "sayısından şu kadar var : " + sayiAdetleri.get(i));
        }
    }
}
Sonuç:
aa.JPG
 
Son düzenleme:
Kod:
  val n = listOf(1,1,1,1,2,3,4,5,6,6,6,7,7,7,8,2,2,2,3,4,3,4,3,21,3,4,43,5,34,43,443,43,11)
  val m = mutableMapOf<Int, Int>()
  n.forEach { if (m[it] != null) m[it] = m[it]!! +1 else m[it] = 1 }
  m.forEach{ println("${it.key} : ${it.value} defa tekrarlandi.")}

Kotlin.

Java da vereyim.

Java:
    int[] n = new int[]{1,1,1,1,2,2,3,4,5,1,1,1,1,1,2,3,4,5,6,4,43,3,3,2,1,12,233};
    Map<Integer,Integer> m  = new HashMap<>();
    Arrays.stream(n).forEach(val ->{if(m.containsKey(val)) m.put(val,m.get(val)+1); else m.put(val,1); });
    m.forEach((k,v) -> System.out.println(String.format("%s   :   %s defa tekrarlandi",k,v)));
 
Son düzenleme:
Kod:
  val n = listOf(1,1,1,1,2,3,4,5,6,6,6,7,7,7,8,2,2,2,3,4,3,4,3,21,3,4,43,5,34,43,443,43,11)
  val m = mutableMapOf<Int, Int>()
  n.forEach { if (m[it] != null) m[it] = m[it]!! +1 else m[it] = 1 }
  m.forEach{ println("${it.key} : ${it.value} defa tekrarlandi.")}

Kotlin.

Java da vereyim.

Java:
    int[] n = new int[]{1,1,1,1,2,2,3,4,5,1,1,1,1,1,2,3,4,5,6,4,43,3,3,2,1,12,233};
    Map<Integer,Integer> m  = new HashMap<>();
    Arrays.stream(n).forEach(val ->{if(m.containsKey(val)) m.put(val,m.get(val)+1); else m.put(val,1); });
    m.forEach((k,v) -> System.out.println(String.format("%s   :   %s defa tekrarlandi",k,v)));
Evet senin yazdığın kod daha kısa olmuş.
Eline sağlık. 👏 😄
 
Son düzenleme:

Geri
Yukarı