Elemente einer Liste

DBR89

Aktives Mitglied
Hi Jungs und Mädels,

habe eine Frage bezüglich des Zugriffs auf eine Liste

folgendem Code
Java:
        public void test(String s){
        	String[] elements = s.split(";");
        	if(elements[0] == "BTS"){
        		System.out.println("erfolg");
        	}else{
        		System.out.println(elements[0]);
        	}
        }

übergebe ich die 1. Zeile meiner Liste. In der Liste stehen Daten die ich aus einer csv Datei ausgelesen habe: in der 1. zeile stehen folgende Infos :
Code:
BTS	Fellhorn 10		44025218	16.667	47,35138889	10,24972222
Bei meiner If abfrage springt er nur nicht in die IF Bedingung sondern ins else... Und gibt im else
Code:
BTS
aus...
 

DBR89

Aktives Mitglied
Erstmal danke, eine Frage habe ich noch:

wie kann ich denn folgendes realisieren:

Java:
        	for (int i=0; i< size; i++){
        		String str = list[i];
        		for(String str1 : list){
        			
        	test(str, str1);
        		}
        	}

Ich möchte im str die Zeile 0 und im str1 die Zeile 1 haben?
 
B

bygones

Gast
Erstmal danke, eine Frage habe ich noch:

wie kann ich denn folgendes realisieren:

Java:
        	for (int i=0; i< size; i++){
        		String str = list[i];
        		for(String str1 : list){
        			
        	test(str, str1);
        		}
        	}

Ich möchte im str die Zeile 0 und im str1 die Zeile 1 haben?
???
[c]test(list[0], list[1])[/c]
was ist list, was ist size, immer nur 0 und 1 ?!
 
G

Gast2

Gast
Ich würde in das Set allerdings nicht mit Strings füllen sondern eine eigene Klasse erstellen die die Infos von jedem Eintrag speichert.
Da kann man dann auch noch die equals und hashcode methode überschreiben.
 

DBR89

Aktives Mitglied
[c]Set<String> withoutDuplicates = new HashSet(list);[/c]

Ganz so einfach werde ich es mir nicht machen können, denn wie in test() zu sehen ist, geht es um den vergleich einzelner Elemente.. Und die werden dann wieder zusammengefasst...

Also es ist nicht so das der String dann einfach weggelassen werden kann... leider...

hier nochmal test():

Java:
public void test(String s, String s1){
        	String[] elements = s.split(";");
        	String[] elements1 = s.split(";");
        	if(elements[0].equals(elements1[0])){
        		System.out.println("erfolg");
        	}
        }
 
B

bygones

Gast
ich denke mal das 2. s.split soll s1.split heißen ?!
Java:
for (int i=0; i< size; i++){
 for (int j=i+1; j< size;j++){
   test(list[i], list[j]);
 }
}
 

DBR89

Aktives Mitglied
Also die verschachtelte forschleife Funktioniert. Danke dafür.

Ich komme jetzt nur an einem anderen Punkt nicht weiter:(ich erklähre die gesamte Problematik)
Ich lese folgendes CSV File ein:
Code:
Netztyp	Name		nummer	CellID		CI	koordinate_l	koordinate_b

BTS	Fellhorn 10	1	44025218	16.667	47,35138889	10,24972222
BTS	Fellhorn 10	2	44103746	45.705	47,35138889	10,24972222
BTS	Oberstdorf 10	1	44012456	3.967	47,39888889	10,23944444
BTS	Oberstdorf 11	1	44050929	39.393	47,40583333	10,28722222
BTS	Oberstdorf 0	3	44073470	56.917	47,41194444	10,27777778
BTS	Oberstdorf 0	1	44106524	41.084	47,41194444	10,27777778
BTS	Oberstdorf 0	2	44073469	56.916	47,41194444	10,27777778
BTS	Oberstdorf 0	5	44138900	63.861	47,41194444	10,27777778
BTS	Oberstdorf 0	6	44138901	63.863	47,41194444	10,27777778
BTS	Oberstdorf 0	4	44138898	63.858	47,41194444	10,27777778
BTS	Zugspitze 1	1	44049403	38.083	47,41305556	10,98027778
die letzten 2 angaben sind koordinaten. Wenn diese doppelt vorkommen, sollen die CellID und der CI in dem element an der stelle [3] eingefügt werden.
Ich möchte als ergebnis der 1 und 2 zeile also folgendes erhalten:
Code:
BTS	Fellhorn 10	1	44025218, 44103746	16.667, 45.705	47,35138889	10,24972222

wie kann ich das im code umsetzten?
Das ist mein funktionsrumpf...
Java:
        public List<String> test(String s, String s1){
        	
        	String[] elements = s.split(";");
        	String[] elements1 = s1.split(";");
        	if(elements[5].equals(elements1[5]) && elements[6].equals(elements1[6])){
        		elements[3] = elements[3] + "," + elements1[3];
        		elements[4] = elements[4] + "," + elements1[4];

        		list.remove(elements1);
        		}
        	return list;

ich stehe einfach voll auf dem schlauch....
 

timbeau

Gesperrter Benutzer
Ich würde mir ein Objekt konstruieren welches die einzelnen Felder dann als Liste speichert. Kommt also die Koordinate innerhalb einer Datei mehrfach vor wird mit dem Einlesen der "1." Zeile ein Objekt erstellt, gibt es weitere wird an das passende Attribut dieses Objekt der entsprechende Eintrag drangehängt.

Da war ich grad Skilaufen ;)
 

DBR89

Aktives Mitglied
Ich würde mir ein Objekt konstruieren welches die einzelnen Felder dann als Liste speichert. Kommt also die Koordinate innerhalb einer Datei mehrfach vor wird mit dem Einlesen der "1." Zeile ein Objekt erstellt, gibt es weitere wird an das passende Attribut dieses Objekt der entsprechende Eintrag drangehängt.

Da war ich grad Skilaufen ;)

kannst du das vll an einem Codebeispiel erläutern?

Ich hatte an ne 2te Liste gedacht, in der dann das neue element komplett gespeichert wird, nur geht das?
Dazu müsste ich String[] element in einen String casten, wie geht das?

Habe jetzt folgendes eingebaut:
Java:
        	if(elements[5].equals(elements1[5]) && elements[6].equals(elements1[6])){
        		elements[3] = elements[3] + "," + elements1[3];
        		elements[4] = elements[4] + "," + elements1[4];
/*        		for(int i=0; i<elements.length; i++){
        		test = test + "; " + elements[i].toString();
        		}*/
        		System.out.println(test);
        		List newListObject = Arrays.asList(elements);
        		aktlist.addAll(newListObject);
        		System.out.println(aktlist);
        		list.remove(elements1);
        		}

nur funktioniert der addAll() nicht...
Da schmeißt der ne Exception...
 
Zuletzt bearbeitet:

DBR89

Aktives Mitglied
Leider funktioniert auch das nicht...
Das Speichern in eine neue Liste klappt zwar, allerdings hätte ich das array gerne in einer Zeile, stattdessen speichert der mir alle Informationen an eine extra position([0]="BTS", [1] = "Fellhorn", etc.)

Ich verzweifle so langsam....
 

fastjack

Top Contributor
Dein CSV ist doch gar nicht durch ; getrennt, sondern whl. durch Tabs. Du versucht aber ein split(";") zu machen, probier mal split("\t").

Ansonsten rate ich bei CSV Dateien immer zu

FlatPack - Introduction

da ist alles fertig drin, was Du brauchst und einfach ist es auch.
 

timbeau

Gesperrter Benutzer
Java:
package javaforum;

import java.util.LinkedList;
import java.util.List;

public class Funkzellen {

	public static void main(String[] args) {
		String input = "BTS	Fellhorn 10	1	44025218	16.667	47,35138889	10,24972222";
		input = input.replaceAll(",", ".");
		String[] splitted = input.split("[\\t]+");
		List<FunkzellenObjekt> liste = new LinkedList<FunkzellenObjekt>();

		/*
		 * Erste Zelle
		 */
		FunkzellenObjekt fzo1 = new FunkzellenObjekt(splitted[0], splitted[1],
				Integer.valueOf(splitted[2]), Integer.valueOf(splitted[3]),
				Double.valueOf(splitted[4]), Double.valueOf(splitted[5]),
				Double.valueOf(splitted[6]));

		liste.add(fzo1);

		/*
		 * Zweite Zelle
		 */

		String input2 = "BTS	Fellhorn 10	2	44103746	45.705	47,35138889	10,24972222";
		input2 = input2.replaceAll(",", ".");
		String[] splitted2 = input2.split("[\\t]+");
		FunkzellenObjekt fzo2 = new FunkzellenObjekt(splitted2[0],
				splitted2[1], Integer.valueOf(splitted2[2]),
				Integer.valueOf(splitted2[3]), Double.valueOf(splitted2[4]),
				Double.valueOf(splitted2[5]), Double.valueOf(splitted2[6]));

		//Pruefen ob schon enthalten
		boolean nichtDoppelt = false;
		for (FunkzellenObjekt funkzellenObjekt : liste) {
			if (funkzellenObjekt.equals(fzo2)) {
				nichtDoppelt = true;
				/*
				 * Dieser Teil geht auch kürzer aber zur einfacheren Erlaeuterung
				 * Bestehende Liste wird abgerufen, neue Liste in diese eingefuegt 
				 * und diese wieder gespeichert. 
				 */
				List<Integer> tmpI = funkzellenObjekt.getCellID();
				tmpI.addAll(fzo2.getCellID());
				funkzellenObjekt.setCellID(tmpI);

				
				/*
				 * s.o.
				 */
				List<Double> tmpD = funkzellenObjekt.getCI();
				System.out.println("TMPD : " + tmpD);
				tmpD.addAll(fzo2.getCI());
				funkzellenObjekt.setCI(tmpD);
				break;
			}

		}
		if (nichtDoppelt) {
			liste.add(fzo2);
		}
		
		/*
		 * Liste enthaelt nur 1 Element
		 */
		System.out.println(liste.size());
		
		/*
		 * CI enthaelt beide Einträge von CI
		 */
		System.out.println(liste.get(0).getCI());
	}

}

class FunkzellenObjekt {

	private String Netztyp;
	private String Name;
	private int nummer;
	private List<Integer> CellID = new LinkedList<Integer>();
	private List<Double> CI = new LinkedList<Double>();;
	private double koordinate_l;
	private double koordinate_b;

	public FunkzellenObjekt(String netztyp, String name, int nummer,
			int cellID, double cI, double koordinate_l, double koordinate_b) {
		super();
		Netztyp = netztyp;
		Name = name;
		this.nummer = nummer;
		CellID.add(cellID);
		CI.add(cI);
		this.koordinate_l = koordinate_l;
		this.koordinate_b = koordinate_b;
	}

	public String getNetztyp() {
		return Netztyp;
	}

	public void setNetztyp(String netztyp) {
		Netztyp = netztyp;
	}

	public String getName() {
		return Name;
	}

	public void setName(String name) {
		Name = name;
	}

	public int getNummer() {
		return nummer;
	}

	public void setNummer(int nummer) {
		this.nummer = nummer;
	}

	public List<Integer> getCellID() {
		return CellID;
	}

	public void setCellID(List<Integer> cellID) {
		CellID = cellID;
	}

	public List<Double> getCI() {
		return CI;
	}

	public void setCI(List<Double> cI) {
		CI = cI;
	}

	public double getKoordinate_l() {
		return koordinate_l;
	}

	public void setKoordinate_l(double koordinate_l) {
		this.koordinate_l = koordinate_l;
	}

	public double getKoordinate_b() {
		return koordinate_b;
	}

	public void setKoordinate_b(double koordinate_b) {
		this.koordinate_b = koordinate_b;
	}

	@Override
	public boolean equals(Object o) {
		FunkzellenObjekt fzo = (FunkzellenObjekt) o;
		System.out.println(this.koordinate_l + " / " + fzo.getKoordinate_l());
		System.out.println(this.koordinate_b == fzo.getKoordinate_b());
		System.out.println(this.koordinate_l == fzo.getKoordinate_l());
		if (this.koordinate_l == fzo.getKoordinate_l()
				&& this.koordinate_b == fzo.koordinate_b) {
			return true;
		}
		return false;

	}

}

Hoffe das ist so verständlich. Ist jetzt alles nicht super durchdacht aber als grobes Konstrukt funkioniert es. Die Eingabe ist hier mit String manuell gemacht worden, dein CSV muss natürlich zeilenweise eingelesen werden und dann mit jeder Zelle der Konstruktor befüllt werden.
 

DBR89

Aktives Mitglied
Dein CSV ist doch gar nicht durch ; getrennt, sondern whl. durch Tabs. Du versucht aber ein split(";") zu machen, probier mal split("\t").

Ansonsten rate ich bei CSV Dateien immer zu

FlatPack - Introduction

da ist alles fertig drin, was Du brauchst und einfach ist es auch.

ne an der CSV liegts nicht, das funktioniert alles:
Code:
[BTS;Fellhorn 10;1;44025218;16.667;47,35138889;10,24972222
das amcht er
 

DBR89

Aktives Mitglied
timbeau erstmal vielen dank, dass du dir so eine Arbeit gemacht hast.

Ich habe deinen Code soweit verstanden, einzig wie ich das ganze dynamisch, sprich mit einlesen in eine Liste, verarbeiten kann ist mir nicht ganz klar
 

timbeau

Gesperrter Benutzer
Hi, du hast ja immer deine Zeilen die du einliest.

... zeile eingelesen.

Hier die Teile aus meiner Main nutzen
1. Kommas ersetzen
2. Zeile splitten
3. Objekt erzeugen
4. Prüfen ob das Objekt schon enthalten ist
5. Wenn nicht, zur Gesamtliste hinzufügen. Wenn doch, nur die entsprechenden Werte zu dem bereits bestehenden Objekt hinzufügen.
6. nächste Zeile einlesen

Am Ende hast du eine Liste mit allen Funkzellenobjekten.
 

DBR89

Aktives Mitglied
Hi, du hast ja immer deine Zeilen die du einliest.

... zeile eingelesen.

Hier die Teile aus meiner Main nutzen
1. Kommas ersetzen
2. Zeile splitten
3. Objekt erzeugen
4. Prüfen ob das Objekt schon enthalten ist
5. Wenn nicht, zur Gesamtliste hinzufügen. Wenn doch, nur die entsprechenden Werte zu dem bereits bestehenden Objekt hinzufügen.
6. nächste Zeile einlesen

Am Ende hast du eine Liste mit allen Funkzellenobjekten.

Java:
     // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader("test_BTS_Betriebsort.csv");
        	buff = new BufferedReader(myFile);
            String line;
            while ((line = buff.readLine()) != null) {
               // System.out.println(line); // kontrolle was eingelesen
            	line = line.replaceAll(",", ".");
            	String[] splitted = line.split(";");
            	
            	FunkzellenObjekt fzo1 = new FunkzellenObjekt(splitted[0], splitted[1],
                        Integer.valueOf(splitted[2]), Integer.valueOf(splitted[3]),
                        Double.valueOf(splitted[4]), Double.valueOf(splitted[5]),
                        Double.valueOf(splitted[6]));
                       

                boolean nichtDoppelt = false;
                for (FunkzellenObjekt funkzellenObjekt : listeDerFZO) {
                    if (funkzellenObjekt.equals(fzo1)) {
                        nichtDoppelt = true;
                        /*
                         * Dieser Teil geht auch kürzer aber zur einfacheren Erlaeuterung
                         * Bestehende Liste wird abgerufen, neue Liste in diese eingefuegt 
                         * und diese wieder gespeichert. 
                         */
                        List<Integer> tmpI = funkzellenObjekt.getCellID();
                        tmpI.addAll(fzo1.getCellID());
                        funkzellenObjekt.setCellID(tmpI);
         
                        
                        /*
                         * s.o.
                         */
                        List<Double> tmpD = funkzellenObjekt.getCI();
                        System.out.println("TMPD : " + tmpD);
                        tmpD.addAll(fzo1.getCI());
                        funkzellenObjekt.setCI(tmpD);
                        break;
                    }
         
                }
                if (!nichtDoppelt) {
                    listeDerFZO.add(fzo1);
                }

            }
Hab ne NullPointerException... In Zeile 22....
Obwohl ich die Liste
Code:
  private List<FunkzellenObjekt> listeDerFZO = new LinkedList<FunkzellenObjekt>();
initialisiere..
 
Zuletzt bearbeitet:

DBR89

Aktives Mitglied
So hier nochmal der vollständige Code:

Java:
	public List<String> einlesen() {
        
        // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader("test_BTS_Betriebsort.csv");
        	buff = new BufferedReader(myFile);
            String line;
            while ((line = buff.readLine()) != null) {
               // System.out.println(line); // kontrolle was eingelesen
            	line = line.replaceAll(",", ".");
            	String[] splitted = line.split(";");
            	
            	FunkzellenObjekt fzo1 = new FunkzellenObjekt(splitted[0], splitted[1],
                        Integer.valueOf(splitted[2]), Integer.valueOf(splitted[3]),
                        Double.valueOf(splitted[4]), Double.valueOf(splitted[5]),
                        Double.valueOf(splitted[6]));
            	
            	boolean nichtDoppelt = false;
                for (FunkzellenObjekt funkzellenObjekt : listeDerFZO) {
                    if (funkzellenObjekt.equals(fzo1)) {
                        nichtDoppelt = true;
                        /*
                         * Dieser Teil geht auch kürzer aber zur einfacheren Erlaeuterung
                         * Bestehende Liste wird abgerufen, neue Liste in diese eingefuegt 
                         * und diese wieder gespeichert. 
                         */
                        List<Integer> tmpI = funkzellenObjekt.getCellID();
                        tmpI.addAll(fzo1.getCellID());
                        funkzellenObjekt.setCellID(tmpI);
         
                        
                        /*
                         * s.o.
                         */
                        List<Double> tmpD = funkzellenObjekt.getCI();
                        tmpD.addAll(fzo1.getCI());
                        funkzellenObjekt.setCI(tmpD);
                        break;
                    }
         
                }
                if (!nichtDoppelt) {
                    listeDerFZO.add(fzo1);
                }

            }
        } catch (IOException e) {
            System.err.println("Error2 :" + e);
        } finally {
            try {
                buff.close();
                myFile.close();
            } catch (IOException e) {
                System.err.println("Error2 :" + e);
            }
        }
    
        System.out.println(listeDerFZO.get(0));
        return lines;
	}

Vielen Dank an Timbeau für seine Hilfe

PS: Jetzt muss ich mir nur noch überlegen wie ich das in meinen Prozessschritt einbaue...

Java:
public void translate() {   
            try {
                out = new StreamResult("data.xml");
            	initXML();
                for (String str : list) {
                    process(str);
                }
                closeXML();
            } catch (TransformerConfigurationException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SAXException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

 private void initXML() throws TransformerConfigurationException, SAXException {
            SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
            th = tf.newTransformerHandler();
            Transformer serializer = th.getTransformer();
            serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
            serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            serializer.setOutputProperty(OutputKeys.INDENT, "yes");
            th.setResult(out);
            th.startDocument();
            atts = new AttributesImpl();
            th.startElement("", "", "gpx", atts);

        }
     
        private void process(final String s) throws SAXException {
            String[] elements = s.split(";");
            atts.clear();
            atts.addAttribute("", "", "lat", "", "" + elements[5]);
            atts.addAttribute("", "", "lon", "", "" + elements[6]);
            th.startElement("", "", "wpt", atts);
            atts.clear();
            th.startElement("", "", "name", atts);
            String name = "Node-ID: " + elements[3];
            th.characters(name.toCharArray(), 0, name.length());
            th.endElement("", "", "name");
            th.startElement("", "", "cmt", atts);
            th.characters(elements[0].toCharArray(), 0, elements[0].length());
            th.endElement("", "", "cmt");
            th.startElement("", "", "desc", atts);
            String desc = "Standortname: " + elements[1] + "\r\n"+ "Netztyp: " + elements[0] + "\r\n" + "Cell ID: " + elements[4]; //+ "Releasecause: " + elements[5] + " Anzahl: " + elements[6];
            th.characters(desc.toCharArray(), 0, desc.length());
            th.endElement("", "", "desc");
            th.endElement("", "", "wpt");
        }
 

DBR89

Aktives Mitglied
So hier das Endresultat:

Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.sax.SAXTransformerFactory;
import javax.xml.transform.sax.TransformerHandler;
import javax.xml.transform.stream.StreamResult;

import org.xml.sax.SAXException;
import org.xml.sax.helpers.AttributesImpl;


public class Translator {
	private String Inputfile;
	private String Outputfile;
    private StreamResult out;
    private TransformerHandler th;
    private AttributesImpl atts;
    private List<FunkzellenObjekt> listeDerFZO = new LinkedList<FunkzellenObjekt>();

    public Translator(){
    	
    }
	public void setInputFilename(String s){
		Inputfile = s;
		
	}
	public String getInputFilename(){
		return Inputfile;
	}
	
	public void setOutputFilename(String s){
		Outputfile = s;
		
	}
	public String getOutputFilename(){
		return Outputfile;
	}
	
	public List<String> einlesen() {
        
        // Einlesen des Files und spliten
        FileReader myFile = null;
        BufferedReader buff = null;
        final List<String> lines = new ArrayList<String>();
     
        try {
            myFile = new FileReader("test_BTS_Betriebsort.csv");
        	buff = new BufferedReader(myFile);
            String line;
            while ((line = buff.readLine()) != null) {
               // System.out.println(line); // kontrolle was eingelesen
            	line = line.replaceAll(",", ".");
            	String[] splitted = line.split(";");
            	
            	FunkzellenObjekt fzo1 = new FunkzellenObjekt(splitted[0], splitted[1],
                        Integer.valueOf(splitted[2]), Integer.valueOf(splitted[3]),
                        Double.valueOf(splitted[4]), Double.valueOf(splitted[5]),
                        Double.valueOf(splitted[6]));
            	
            	boolean nichtDoppelt = false;
                for (FunkzellenObjekt funkzellenObjekt : listeDerFZO) {
                    if (funkzellenObjekt.equals(fzo1)) {
                        nichtDoppelt = true;
                        /*
                         * Bestehende Liste wird abgerufen, neue Liste in diese eingefuegt 
                         * und diese wieder gespeichert. 
                         */
                        
                        /*
                         * Cell-ID in List speichern
                         */
                        List<Integer> tmpI = funkzellenObjekt.getCellID();
                        tmpI.addAll(fzo1.getCellID());
                        funkzellenObjekt.setCellID(tmpI);
                        /*
                         * CI in List speichern
                         */
                        List<Double> tmpD = funkzellenObjekt.getCI();
                        tmpD.addAll(fzo1.getCI());
                        funkzellenObjekt.setCI(tmpD);
                        break;
                    }
         
                }
                if (!nichtDoppelt) {
                    listeDerFZO.add(fzo1);
                }

            }
        } catch (IOException e) {
            System.err.println("Error2 :" + e);
        } finally {
            try {
                buff.close();
                myFile.close();
            } catch (IOException e) {
                System.err.println("Error2 :" + e);
            }
        //    System.out.println(listeDerFZO);
        }
          return lines;
	}
        

	//Umwandeln der Liste in GPX(XML) Code
    
	public void translate() {   
            try {
                out = new StreamResult("data.xml");
            	initXML();
                process();
                closeXML();
            } catch (TransformerConfigurationException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            } catch (SAXException ex) {
                Logger.getLogger(Translator.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
     
        private void initXML() throws TransformerConfigurationException, SAXException {
            SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
            th = tf.newTransformerHandler();
            Transformer serializer = th.getTransformer();
            serializer.setOutputProperty(OutputKeys.ENCODING, "ISO-8859-1");
            serializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
            serializer.setOutputProperty(OutputKeys.INDENT, "yes");
            th.setResult(out);
            th.startDocument();
            atts = new AttributesImpl();
            th.startElement("", "", "gpx", atts);

        }
     
        private void process() throws SAXException {
        	FunkzellenObjekt[] elements = new FunkzellenObjekt[listeDerFZO.size()];
    		listeDerFZO.toArray(elements);
    		for (int i=0; i<listeDerFZO.size(); i++){
            atts.clear();
            atts.addAttribute("", "", "lat", "", "" + elements[i].getKoordinate_b());
            atts.addAttribute("", "", "lon", "", "" + elements[i].getKoordinate_l());
            th.startElement("", "", "wpt", atts);
            atts.clear();
            th.startElement("", "", "name", atts);
            String name = "Node-ID: " + elements[i].getCellID();
            th.characters(name.toCharArray(), 0, name.length());
            th.endElement("", "", "name");
            th.startElement("", "", "cmt", atts);
//            th.characters(elements[i].toCharArray(), 0, elements[i].length());
            th.endElement("", "", "cmt");
            th.startElement("", "", "desc", atts);
            String desc = "Standortname: " + elements[i].getName() + "\r\n"+ "Netztyp: " + elements[i].getNetztyp() + "\r\n" + "Cell ID: " + elements[i].getCellID(); //+ "Releasecause: " + elements[5] + " Anzahl: " + elements[6];
            th.characters(desc.toCharArray(), 0, desc.length());
            th.endElement("", "", "desc");
            th.endElement("", "", "wpt");
    		}
        }
       
        
        private void closeXML() throws SAXException {
            th.endElement("", "", "gpx");
            th.endDocument();
        }
        
        public boolean start() {
        	
        try{
        	translate();
        	}catch (ArrayIndexOutOfBoundsException ex){
        	return false;
        }
        	return true;
          
            
        }
        public static void main(String[] args){
        	Translator t = new Translator();
        	t.start();
        	
        }
}

class FunkzellenObjekt {
	 
    private String Netztyp;
    private String Name;
    private int nummer;
    private List<Integer> CellID = new LinkedList<Integer>();
    private List<Double> CI = new LinkedList<Double>();;
    private double koordinate_l;
    private double koordinate_b;
 
    public FunkzellenObjekt(String netztyp, String name, int nummer,
            int cellID, double cI, double koordinate_l, double koordinate_b) {
        super();
        Netztyp = netztyp;
        Name = name;
        this.nummer = nummer;
        CellID.add(cellID);
        CI.add(cI);
        this.koordinate_l = koordinate_l;
        this.koordinate_b = koordinate_b;
    }
 
    public String getNetztyp() {
        return Netztyp;
    }
 
    public void setNetztyp(String netztyp) {
        Netztyp = netztyp;
    }
 
    public String getName() {
        return Name;
    }
 
    public void setName(String name) {
        Name = name;
    }
 
    public int getNummer() {
        return nummer;
    }
 
    public void setNummer(int nummer) {
        this.nummer = nummer;
    }
 
    public List<Integer> getCellID() {
        return CellID;
    }
 
    public void setCellID(List<Integer> cellID) {
        CellID = cellID;
    }
 
    public List<Double> getCI() {
        return CI;
    }
 
    public void setCI(List<Double> cI) {
        CI = cI;
    }
 
    public double getKoordinate_l() {
        return koordinate_l;
    }
 
    public void setKoordinate_l(double koordinate_l) {
        this.koordinate_l = koordinate_l;
    }
 
    public double getKoordinate_b() {
        return koordinate_b;
    }
 
    public void setKoordinate_b(double koordinate_b) {
        this.koordinate_b = koordinate_b;
    }
 
    @Override
    public boolean equals(Object o) {
        FunkzellenObjekt fzo = (FunkzellenObjekt) o;
/*        System.out.println(this.koordinate_l + " / " + fzo.getKoordinate_l());
        System.out.println(this.koordinate_b == fzo.getKoordinate_b());
        System.out.println(this.koordinate_l == fzo.getKoordinate_l());*/
        if (this.koordinate_l == fzo.getKoordinate_l()
                && this.koordinate_b == fzo.koordinate_b) {
            return true;
        }
        return false;
 
    }
 
}

Vielen dank an alle für die Tatkräftige Unterstützung! Dieses Forum ist wirklich ein TOP! :toll:
 

DBR89

Aktives Mitglied
Neue Problematik:
RCF = Releasecause
Code:
CI	RCF    Häufigkeit
10330	0015	    6
10330	0B1B	    3
10330	0005	    1
10331	030B	    2
10331	0015	    1
10331	0B1B	    1
10508	0B14	    1
10594	0B14	    3
10598	0B14	    9
11016	0B14	    8
11016	0885	    2
11018	0B14	    4
11148	0B1B	    2
11148	030B	    1
11149	0B1B	    3
11149	0015	    1
Diese Datei wird ebenfalls eingelesen. Nach dem selben prinzip wie auch schon die vorherige Datei. Die CI wird in eine Linklist gespeichert, die Häufigkeit auch....

So jetzt will ich das ganze mergen(Verbinden) und in eine neue Liste speichern:

Java:
public void merge(){
		Einlesen einlesen = new Einlesen();
		einlesen.einlesenFZO();
		einlesen.einlesenRCF();
		
		
		FunkzellenObjekt[] FZOelements = new FunkzellenObjekt[einlesen.getListeDerFZO().size()];
		einlesen.getListeDerFZO().toArray(FZOelements);
		
		RCFObjekte[] RCFelements = new RCFObjekte[einlesen.getListeDerRCF().size()];
		einlesen.getListeDerRCF().toArray(RCFelements);

		
		
		
		for(int i = 0; i<einlesen.getListeDerFZO().size(); i++){
			for(int j = 0; j<einlesen.getListeDerRCF().size(); j++){
				List<Double> FZOelementsCI = FZOelements[i].getCI();
				//double RCFelementsCI = RCFelements[j].getCI();
				
				
				
			/*	List<Integer> FZOelementsFrequency = RCFelements[i].getFrequency();
				double RCFelementsCI = RCFelements[j].getCI();*/
				 
				for (double FZOciDouble : FZOelementsCI) {
				    if(FZOciDouble == RCFelements[j].getCI()){
				    	System.out.println("CI: " + FZOelements[i].getCI()+ " Releasecause: " + FZOelements[i].getReleasecause()+ " " + FZOelements[i].getKoordinate_b());
				    	FZOelements[i].setReleasecause(RCFelements[j].getRCF());
				       FZOelements[i].setFrequency(RCFelements[j].getFrequency());
				    //   System.out.println("CI: " + FZOelements[i].getCI()+ " Releasecause: " + FZOelements[i].getReleasecause()+ " " + FZOelements[i].getKoordinate_b());
				       System.out.println(FZOelements[i].getFrequency());
				       listeCSV.add(FZOelements[i]);
				       
				        
				    } 
				}

Problem nur: CI 10330 wird überschrieben, weil 10331 die selben Koordinaten hat wie 10330. Somit habe ich in der Liste 2 mal den selben eintrag mit dem gleichen RCF....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
1 Wie addiert man die Elemente einer Verketteten Liste? Java Basics - Anfänger-Themen 5
S JPA / Elemente einer Liste ansprechen Java Basics - Anfänger-Themen 5
B mit einem Iterrator elemente aus einer liste löschen Java Basics - Anfänger-Themen 3
M wie kann ich am besten die kleinste 2 elemente von einer Liste kriegen Java Basics - Anfänger-Themen 4
S Elemente einer Liste mit true / false Werten Java Basics - Anfänger-Themen 3
G Anzahl der Elemente einer Liste ausgeben Java Basics - Anfänger-Themen 15
M Elemente in einer ArrayList einander zuordnen. Java Basics - Anfänger-Themen 18
W Elemente aus einer anderen GUI steuern! Java Basics - Anfänger-Themen 13
B in einem abstrakten Set ,Elemente einer einfache verkettete List epeichern Java Basics - Anfänger-Themen 13
E Elemente einer (öffentlichen) ArrayList in einer anderen Klasse zu einer ArrayList dazu fügen. Java Basics - Anfänger-Themen 7
T Mehrere Elemente in einer HashMap? Java Basics - Anfänger-Themen 2
S Bestimmte Elemente einer ArrayList löschen Java Basics - Anfänger-Themen 3
D Elemente einer Map vergleichen Java Basics - Anfänger-Themen 8
O Elemente zu einer List adden - vereinfachen Java Basics - Anfänger-Themen 14
R Elemente einer .txt hinzufügen und nicht überschreiben Java Basics - Anfänger-Themen 10
0x7F800000 Elemente einer Äquivalenzklasse bzgl einer Ordnung vereinen? Java Basics - Anfänger-Themen 18
0x7F800000 elemente aus einer Collection korrekt löschen Java Basics - Anfänger-Themen 8
G Häufigkeit der Elemente in einer ArrayList zählen Java Basics - Anfänger-Themen 2
G Elemente in einer ArrayList anhand ID löschen Java Basics - Anfänger-Themen 17
K Kombinationen der Elemente einer ArrayList Java Basics - Anfänger-Themen 4
T Aus Elemente einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 11
N Ich kriege ganze zeit die Fehlermeldung "Inhalt der Zwischenablage kann nicht in die ausgewählten Elemente eingefügt werden" hat jemand eine Lösung? Java Basics - Anfänger-Themen 6
E Elemente aus Liste entfernen und hinzufügen Java Basics - Anfänger-Themen 3
J 2 listen vergleichen, die auch null Elemente haben können ! Java Basics - Anfänger-Themen 9
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
frager2345 Aufgabe Hash Objekt Elemente ausgeben Java Basics - Anfänger-Themen 2
A Elemente in einem Array Java Basics - Anfänger-Themen 5
J Methoden Die Reihenfolge der Iterator-Elemente umkehren Java Basics - Anfänger-Themen 3
M ArrayList<TreeNode<T>> fortlaufende Nummerierung der Elemente Java Basics - Anfänger-Themen 5
Cassy3 Binäre Bäume Rekursiv durchlaufen und bestimmte Elemente Zählen Java Basics - Anfänger-Themen 6
B Verkettete Liste durchgehen und einzelne Elemente in neue Liste tun Java Basics - Anfänger-Themen 9
D Array Elemente sortieren in aufsteigender Reihenfolge Java Basics - Anfänger-Themen 10
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
T SCC Elemente Java Basics - Anfänger-Themen 0
L ArrayList auf 4 Elemente begrenzen Java Basics - Anfänger-Themen 56
H Array Elemente Java Basics - Anfänger-Themen 17
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
GAZ String replace() Elemente tauschen Java Basics - Anfänger-Themen 13
J Array; Elemente kopieren Java Basics - Anfänger-Themen 17
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
S Laufzeit Quicksort wenn alle Elemente gleich sind Java Basics - Anfänger-Themen 4
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
M Matrix auf 4 Elemente untersuchen mit offenen Enden Java Basics - Anfänger-Themen 8
M Matrix Elemente vergleichen Java Basics - Anfänger-Themen 11
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Erste Schritte Elemente zwei Schlangen vergleichen Java Basics - Anfänger-Themen 14
E Elemente aus Liste löschen Java Basics - Anfänger-Themen 5
L Array Elemente verschieben Java Basics - Anfänger-Themen 5
S Elemente in Liste einfügen Java Basics - Anfänger-Themen 2
D jsoup.select findet keine elemente Java Basics - Anfänger-Themen 2
F JList Elemente mit Strings vergleichen Java Basics - Anfänger-Themen 12
W ArrayList löscht alle Elemente bis auf eines Java Basics - Anfänger-Themen 2
T Klassen Doppelte Elemente aus Container entfernen Java Basics - Anfänger-Themen 6
G Verkettete Liste - Neu erzeugte Elemente werden nicht ausgegeben Java Basics - Anfänger-Themen 5
GreenTeaYT HashMap dupliziert meine Elemente? Java Basics - Anfänger-Themen 2
J Elemente in Array speichern, löschen, ... Java Basics - Anfänger-Themen 3
arjoopy Kapselung Elemente aus Objekt-Array ausgeben Java Basics - Anfänger-Themen 8
U Input/Output Elemente eines Binären Suchbaums ausgeben Java Basics - Anfänger-Themen 10
M ComboBox bestimmte Elemente disablen/ausgrauen Java Basics - Anfänger-Themen 3
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
M LinkedList elemente löschen Java Basics - Anfänger-Themen 2
D Klassen Doppelt so viele Elemente in Arraylist ? Java Basics - Anfänger-Themen 4
V Elemente aus einem Array mit null überschreiben Java Basics - Anfänger-Themen 4
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
C Array Elemente Paarweise vertauschen Java Basics - Anfänger-Themen 2
kilopack15 Array auf doppelte Elemente überprüfen Java Basics - Anfänger-Themen 16
R warum kann System.out.println(..) etwas, was Swing-Elemente Nicht können ? Java Basics - Anfänger-Themen 11
R Elemente eine Liste im Ring schliessen Java Basics - Anfänger-Themen 9
B generische LinkedList nach Häufigkeit der Elemente füllen Java Basics - Anfänger-Themen 6
M Klassen Gesamt speicherbare Elemente in Vector? Java Basics - Anfänger-Themen 3
M Elemente eines Arrays verschieben Java Basics - Anfänger-Themen 9
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
O Rekursiver Durchlauf verschachtelter Elemente Java Basics - Anfänger-Themen 1
P Vector durchsuchen und Elemente löschen Java Basics - Anfänger-Themen 4
R Variablen [GELÖST]Elemente in Array um Schrittweite s verschieben Java Basics - Anfänger-Themen 2
T Erste Schritte Elemente finden, deren Name erst "zusammengesetzt" wird Java Basics - Anfänger-Themen 8
A Eindeutige Elemente aus Array extrahieren Java Basics - Anfänger-Themen 9
gamebreiti Gui menu ArrayList Elemente wiedererkennen Java Basics - Anfänger-Themen 3
C Matrixmultiplikation ohne einzelne Elemente aufzurufen Java Basics - Anfänger-Themen 2
V wie kann ich in zweidimensionaller Arraylist auf die einzelnen Elemente zugreifen ? Java Basics - Anfänger-Themen 7
W wie legt man die elemente der liste k Mal fest ? Java Basics - Anfänger-Themen 7
S Anzahl unterschiedlicher Elemente zählen Java Basics - Anfänger-Themen 4
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
C ArrayList - überschreibt Elemente Java Basics - Anfänger-Themen 7
A Mehrere 100.000 Elemente verlgeichen Java Basics - Anfänger-Themen 8
A JList Elemente in ein andres JList Adden Java Basics - Anfänger-Themen 5
B Zweidimensionales Array Elemente jeder Spalte zählen Java Basics - Anfänger-Themen 9
L Rückwärtsausgabe der Array-Elemente Java Basics - Anfänger-Themen 5
1 Elemente von 2 Arrays vergleichen Java Basics - Anfänger-Themen 12
1 Minimum aller Elemente in einem Array bestimmen Java Basics - Anfänger-Themen 10
M aus x Elementen y Elemente auswählen Java Basics - Anfänger-Themen 6
J Eingabe Elemente Aktivieren Java Basics - Anfänger-Themen 2
R Best Practice Elemente aus ArrayList entfernen (performant) Java Basics - Anfänger-Themen 6
G String Elemente auf Zahlen Überprüfen Java Basics - Anfänger-Themen 21

Ähnliche Java Themen

Neue Themen


Oben