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