瀏覽代碼

Added generics

Kenneth van Ewijk 10 年之前
父節點
當前提交
2ce3f05c39
共有 5 個文件被更改,包括 133 次插入9 次删除
  1. 34 0
      other/generics/Generics.java
  2. 59 0
      other/generics/JKArray.java
  3. 23 0
      other/generics/JKElement.java
  4. 3 4
      other/other/Main.java
  5. 14 5
      other/recursive/Recursive.java

+ 34 - 0
other/generics/Generics.java

@@ -1,5 +1,39 @@
 package generics;
 
 public class Generics {
+	
+	public enum Test {
+		COMPARE,
+		ARRAY
+	}
+	
+	public Generics(Test t)
+	{
+		switch(t)
+		{
+		case COMPARE:
+			runCompareTest();
+			break;
+		case ARRAY:
+			runArrayTest();
+			break;
+		}
+	}
 
+	private void runArrayTest() {
+		JKArray<JKElement> jk = new JKArray<JKElement>();
+		jk.add(new JKElement("hoi", 1));
+		jk.add(new JKElement("doei", 2));
+		
+		System.out.println("Elements: " + jk.size());
+		System.out.println("Sum num: " + jk.numsize());
+		System.out.println("String size: " + jk.stringsize());
+		System.out.println("String: " + jk.getStrings());
+		
+	}
+
+	private void runCompareTest() {
+		// TODO Auto-generated method stub
+		
+	}
 }

+ 59 - 0
other/generics/JKArray.java

@@ -0,0 +1,59 @@
+package generics;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class JKArray<E extends JKElement> {
+
+	List<E> elements;
+	
+	public JKArray(){
+		elements = new ArrayList<E>();
+	}
+	
+	public void add(E e)
+	{
+		elements.add(e);
+	}
+	
+	public int size()
+	{
+		return elements.size();
+	}
+	
+	public int numsize()
+	{
+		int sum = 0;
+		
+		for(E e : elements)
+		{
+			sum += e.getNum();
+		}
+		
+		return sum;
+	}
+	
+	public int stringsize()
+	{
+		int sum = 0;
+		
+		for(E e : elements)
+		{
+			sum += e.getString().length();
+		}
+		
+		return sum;
+	}
+	
+	public String getStrings()
+	{
+		String str = "";
+		
+		for(E e : elements)
+		{
+			str += e.getString();
+		}
+		
+		return str;
+	}
+}

+ 23 - 0
other/generics/JKElement.java

@@ -0,0 +1,23 @@
+package generics;
+
+public class JKElement {
+	
+	String string;
+	int num;
+	
+	public JKElement(String string, int num)
+	{
+		this.string = string;
+		this.num = num;
+	}
+	
+	public int getNum()
+	{
+		return num;
+	}
+
+	public String getString()
+	{
+		return string;
+	}
+}

+ 3 - 4
other/other/Main.java

@@ -2,7 +2,6 @@ package other;
 
 import generics.Generics;
 import recursive.Recursive;
-import recursive.Recursive.Test;
 
 public class Main {
 
@@ -13,16 +12,16 @@ public class Main {
 		
 		//runGenerics();
 		
-		runRecursive();
+		//runRecursive();
 
 	}
 
 	private static void runRecursive() {
-		Recursive r = new Recursive(Test.FILE);
+		Recursive r = new Recursive(Recursive.Test.FIBONACCI);
 	}
 
 	private static void runGenerics() {
-		Generics g = new Generics();		
+		Generics g = new Generics(Generics.Test.ARRAY);		
 	}
 
 }

+ 14 - 5
other/recursive/Recursive.java

@@ -23,13 +23,22 @@ public class Recursive {
 	}
 
 	private void runFibonacciTest() {
-		// TODO Auto-generated method stub
-		
+		System.err.println("Running recursive fibonacci test...");
+		System.out.println(calcFibonacci(20));
+	}
+
+	public int calcFibonacci(int n)  {
+	    if(n == 0)
+	        return 0;
+	    else if(n == 1)
+	    	return 1;
+	   else
+	      return calcFibonacci(n - 1) + calcFibonacci(n - 2);
 	}
 
 	private void runFileTest() {
-		System.err.println("Running recursive file test");
-		System.out.println(viewFiles("C:\\Users\\Kenneth\\Downloads\\SAH"));
+		System.err.println("Running recursive file test...");
+		System.out.println(viewFiles("."));
 	}
 	
 	private String viewFiles(String path)
@@ -41,7 +50,7 @@ public class Recursive {
 		for(File f : files)
 		{
 			if(f.isDirectory())
-				str += "\n" + f.getName() + "\n\t" + viewFiles(f.getAbsolutePath());
+				str += "\n" + f.getName() + "\t" + viewFiles(f.getAbsolutePath());
 			else
 				str += "\n\t" + f.getName();
 		}