---
title: "String och Comparable[]"
type: "forum-thread"
url: "https://www.webforum.nu/amne/java/127519-string-och-comparable"
topic: "Java"
topic_url: "https://www.webforum.nu/amne/java"
author: "Sam82"
published: "2005-05-03T09:53:21.000Z"
updated: "2005-05-03T12:02:07.000Z"
replies: 8
views: 574
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/java/127519-string-och-comparable"
---

# String och Comparable[]

## #1 — Sam82, 2005-05-03T09:53Z

Hej!
Jag har en main metod som läser in från en fil, en annan metod som tar Comparable\[\] objekt. 
frågan är hur gör jag så att jag kan skicka iväg det som läses till metoden som tar Comparable\[\] objekt.

tacksam för svar
mvh

Permalänk: https://www.webforum.nu/p/127519

## #2 — nitro2k01, 2005-05-03T09:57Z

Hur ser koden ut nu?

Permalänk: https://www.webforum.nu/p/1605140

## #3 — Sam82, 2005-05-03T10:02Z

jag har försökt att skapa en Comparable\[\] array och lägga in det som läses in i arrayen, men det har inte funkat.
men annars så ser den ut så här :
import java.io.\*;

public class ex {
	
	
	//--------------------InsertionSort------------------
	public static void insertionSort(Comparable\[\] list) {
    	
    	
    	for (int i = 1; i \< list.length; i++) {
        	
            Comparable tmp = list*;
            int j;
            for (j = i; j \> 0 && tmp.compareTo(list\[j - 1\]) \< 1; j--) 
            	list\[j\] = list\[j - 1\];
            
            list\[j\] = tmp;
        }
        
    }
    
    
	
	//--------------Main---------------------
	public static void main(String\[\] args) {
		
		if(args.length \> 0) {
			
			if(args\[0\].equals("insertion")) {
				
				try {
					
					BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
					
					String str;
					while ((str = in.readLine()) != null) {
        				System.out.println(str);
						
					}
		    			
					in.close();
					
					} catch(IOException e) {
						
						e.printStackTrace();
				}
			}
		}
	}
}*

Permalänk: https://www.webforum.nu/p/1605141

## #4 — nitro2k01, 2005-05-03T10:04Z

tips: Lägg koden i \[kod\]-taggar.
/r Alltså här på forumet för att den ska bli mer lättläst.

Permalänk: https://www.webforum.nu/p/1605144

## #5 — Sam82, 2005-05-03T10:09Z

```
import java.io.*;

public class ex {
	
	
	//--------------------InsertionSort------------------
	public static void insertionSort(Comparable[] list) {
    	
    	
    	for (int i = 1; i < list.length; i++) {
        	
            Comparable tmp = list[i];
            int j;
            for (j = i; j > 0 && tmp.compareTo(list[j - 1]) < 1; j--) 
            	list[j] = list[j - 1];
            
            list[j] = tmp;
        }
        
    }
    
    
	
	//--------------Main---------------------
	public static void main(String[] args) {
		
		if(args.length > 0) {
			
			if(args[0].equals("insertion")) {
				
				try {
					
					BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
					
					String str;
					while ((str = in.readLine()) != null) {
        				System.out.println(str);
						
					}
		    			
					in.close();
					
					} catch(IOException e) {
						
						e.printStackTrace();
				}
			}
		}
	}
}
```

Permalänk: https://www.webforum.nu/p/1605145

## #6 — Sam82, 2005-05-03T10:10Z

Uppenbarligen så ska jag ju göra nåt efter while-loopen så att str kan skickas till insertion metoden...men frågan är just vad ? tacksam för svar :)

Permalänk: https://www.webforum.nu/p/1605146

## #7 — nitro2k01, 2005-05-03T10:27Z

Nu är itne jag säker på att detta är det bästa sättet, ett bra sätt, eller att det ens funkar som det ska, men pröva denna kod och bygg vidare på den:

```
import java.io.*;
import java.util.ArrayList;

public class ex {

//--------------------InsertionSort------------------
public static void insertionSort(Comparable[] list) {

	for (int i = 1; i < list.length; i++) {

		Comparable tmp = list[i];
		int j;
		for (j = i; j > 0 && tmp.compareTo(list[j - 1]) < 1; j--)
		list[j] = list[j - 1];

		list[j] = tmp;
	}

}

//--------------Main---------------------
public static void main(String[] args) {
	ArrayList alist = new ArrayList();
	Object[] clist_temp;
	Comparable[] clist;

	if(args.length > 0) {

		if(args[0].equals("insertion")) {

			try {

				BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

				String str;
				while ((str = in.readLine()) != null) {
					alist.add(str);
					System.out.println(str);
				}

				in.close();

				clist_temp = alist.toArray();

				System.out.println(clist_temp.length);

				clist=new Comparable[clist_temp.length];

				System.arraycopy(clist_temp, 0, clist, 0, clist.length);

				System.out.println("---");

				for (int i = 1; i < clist.length; i++) {
					System.out.println(clist[i]);
				}

				insertionSort(clist);

				System.out.println("---");

				for (int i = 1; i < clist.length; i++) {
					System.out.println(clist[i]);
				}

			} catch(IOException e) {

				e.printStackTrace();
			}
		}
	}
}

}
```

Permalänk: https://www.webforum.nu/p/1605154

## #8 — TomasJ, 2005-05-03T10:49Z

> **Sam82 skrev:**
>
> Uppenbarligen så ska jag ju göra nåt efter while-loopen så att str kan skickas till insertion metoden...men frågan är just vad ? tacksam för svar :)

```
		...
		Vector vector = new Vector();
		String str;
		while ((str = in.readLine()) != null) {
			vector.add(str);
		}		
		String[] stringArray = new String[vector.size()];
		vector.copyInto(stringArray);
		
		insertionSort(stringArray);
		// eller istället för att använda en egen sorteringsalgoritm 
		// så kan man använda följande metod 
		// java.util.Arrays.sort(stringArray);
		...
```

/ Tomas

Permalänk: https://www.webforum.nu/p/1605170

## #9 — Sam82, 2005-05-03T12:02Z

Jag är tacksam för svaret och uppskattar din tid för besväret :)

Permalänk: https://www.webforum.nu/p/1605222

---

Tråden på webben: https://www.webforum.nu/amne/java/127519-string-och-comparable
