From d8774d5ea6874846879789c17bca32792258d3cb Mon Sep 17 00:00:00 2001 From: Martin Vatshelle <mva021@ii0233228.klient.uib.no> Date: Thu, 20 Mar 2025 12:26:18 +0100 Subject: [PATCH] Code after lecture 12 --- .../lecture12_generics/MostCommonFinder.java | 34 +++++++++++++++++++ src/main/java/lecture12_generics/Pair.java | 25 ++++++++++++++ .../lecture12_generics/UseMostCommon.java | 21 ++++++++++++ src/main/java/lecture12_generics/UsePair.java | 20 +++++++++++ 4 files changed, 100 insertions(+) create mode 100644 src/main/java/lecture12_generics/MostCommonFinder.java create mode 100644 src/main/java/lecture12_generics/Pair.java create mode 100644 src/main/java/lecture12_generics/UseMostCommon.java create mode 100644 src/main/java/lecture12_generics/UsePair.java diff --git a/src/main/java/lecture12_generics/MostCommonFinder.java b/src/main/java/lecture12_generics/MostCommonFinder.java new file mode 100644 index 0000000..971fbbb --- /dev/null +++ b/src/main/java/lecture12_generics/MostCommonFinder.java @@ -0,0 +1,34 @@ +package lecture12_generics; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class MostCommonFinder { + + public static <T> T findMostCommon(List<T> list) { + Optional<T> bestElem = Optional.empty(); + int maxAntall=0; + for(T elem : list) { + //int antall = countOccurences(list, elem); + int antall = Collections.frequency(list, elem); + //update max value + if(antall>maxAntall) { + maxAntall = antall; + bestElem = Optional.of(elem); + } + } + return bestElem.get(); + } + + private static <T> int countOccurences(List<T> list, T elem) { + //telle antall ganger dette elementet forekommer + int antall = 0; + for(T elem2 : list) { + if(elem.equals(elem2)) { + antall++; + } + } + return antall; + } +} diff --git a/src/main/java/lecture12_generics/Pair.java b/src/main/java/lecture12_generics/Pair.java new file mode 100644 index 0000000..17fed41 --- /dev/null +++ b/src/main/java/lecture12_generics/Pair.java @@ -0,0 +1,25 @@ +package lecture12_generics; + +public class Pair<T,V> { + + T first; + V last; + + Pair(T first, V last){ + this.first = first; + this.last = last; + } + + T getFirst(){ + return first; + } + + V getLast(){ + return last; + } + + @Override + public String toString() { + return first.toString()+", "+last.toString(); + } +} diff --git a/src/main/java/lecture12_generics/UseMostCommon.java b/src/main/java/lecture12_generics/UseMostCommon.java new file mode 100644 index 0000000..939efe8 --- /dev/null +++ b/src/main/java/lecture12_generics/UseMostCommon.java @@ -0,0 +1,21 @@ +package lecture12_generics; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class UseMostCommon { + + public static void main(String[] args) { + List<Integer> tall = new ArrayList<Integer>(); + tall.addAll(Arrays.asList(1,2,3,2,3,5,2,7,3,2,8)); + Integer common = MostCommonFinder.findMostCommon(tall); + System.out.println("Most common: "+common); + + List<String> names = new ArrayList<>(); + names.addAll(Arrays.asList("Per","Lise","Martin","Lise","Ole")); + String mostCommon = MostCommonFinder.findMostCommon(names); + System.out.println("Most common: "+mostCommon); + } + +} diff --git a/src/main/java/lecture12_generics/UsePair.java b/src/main/java/lecture12_generics/UsePair.java new file mode 100644 index 0000000..12f4b14 --- /dev/null +++ b/src/main/java/lecture12_generics/UsePair.java @@ -0,0 +1,20 @@ +package lecture12_generics; + +public class UsePair { + + public static void main(String[] args) { + Pair<String,String> navn = new Pair<String,String>("Martin", "Vatshelle"); + String firstString = navn.getFirst(); + System.out.println(navn); + + Pair<Integer,Integer> tall = new Pair<Integer,Integer>(12,17); + Integer firstTall = tall.getFirst(); + System.out.println(tall); + + Pair<String,Integer> par = new Pair<String,Integer>("INF",101); + String first = par.getFirst(); + Integer last = par.getLast(); + System.out.println(par); + } + +} -- GitLab