Hur ser koden ut nu?
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
8 svar · 574 visningar · startad av Sam82
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
Hur ser koden ut nu?
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();
}
}
}
}
}*
tips: Lägg koden i [kod]-taggar.
/r Alltså här på forumet för att den ska bli mer lättläst.
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();
}
}
}
}
}
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
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();
}
}
}
}
}
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
Jag är tacksam för svaret och uppskattar din tid för besväret