String Array Größe begrenzt?



  • Hallo,

    ich habe gerade mit einem String[]-Array mit einer Größe von ca 6300 Einträgen zu tun. Wenn ich dieses Array nun mit einer einfachen for-Schleife durchlaufe scheint er dies aber nur 20 mal durchzugehen...auch wenn ich mir die ArrayEinträge über die konsole ausgeben lasse werden mir nur 20 Einträge angezeigt.
    Hat das irgendeinen tieferen Sinn? ist da die größe beschränkt oder wie?

    😕


  • Mod

    XfrageX schrieb:

    ist da die größe beschränkt oder wie?

    Nö. Hört sich eher danach an, dass Du ein fehlerhaftes Programm geshrieben hast.



  • Gregor schrieb:

    XfrageX schrieb:

    ist da die größe beschränkt oder wie?

    Nö. Hört sich eher danach an, dass Du ein fehlerhaftes Programm geshrieben hast.

    öhm, nein. so schwer ist eine forschleife ja nun doch nicht 🙂 und beim debuggen ist mein "zielwert", also der wert bis zu dem die schleife laufen soll auch 6300 groß.
    ne xception wird da ansonsten auch nicht geschmissen.


  • Mod

    XfrageX schrieb:

    öhm, nein. so schwer ist eine forschleife ja nun doch nicht 🙂 und beim debuggen ist mein "zielwert", also der wert bis zu dem die schleife laufen soll auch 6300 groß.
    ne xception wird da ansonsten auch nicht geschmissen.

    Der Fehler liegt trotzdem in Deinem Code. Zeig doch mal. 🙂 ...das ganze Programm inklusive Ausgabe usw..



  • public void blubbeldiblubb(TableColumn column, String str) {
    
    // Variable key_index und columnCount wurde vorher ermittelt.
    
    		String[] values = str.split(";");
    		for(int i=1;i<values.length;i++) {
    			String[] pair = values[i].split("\t");
    			boolean existed=false;			
    			for(int k=0;k<getTable().getRowCount();k++) {
    				String key = (String) getTable().getValueAt(k, key_index);
    				if(pair[0].equals(key)) {
    					getTable().getTableModel().setValueAt(pair[1], k, column.getModelIndex());
    					existed=true;
    				}				
    			}
    			if(!existed) {
    				Vector<String> v = new Vector<String>();
    				v.setSize(columnCount);
    				v.setElementAt(pair[0], key_index);
    				v.setElementAt(pair[1], column.getModelIndex());				
    				getTable().getTableModel().getData().add(v);				
    			}
    		}
    }
    

    der Aussschnitt um den es geht.


  • Mod

    Wo ist die Ausgabe auf die Konsole?



  • die war schon wider draußen, nu isses wieder drin.

    public void blubbeldiblubb(TableColumn column, String str) {
    
    // Variable key_index und columnCount wurde vorher ermittelt.
    
            String[] values = str.split(";");
            for(int i=1;i<values.length;i++) {
                System.out.println(i);
                String[] pair = values[i].split("\t");
                boolean existed=false;           
                for(int k=0;k<getTable().getRowCount();k++) {
                    String key = (String) getTable().getValueAt(k, key_index);
                    if(pair[0].equals(key)) {
                        getTable().getTableModel().setValueAt(pair[1], k, column.getModelIndex());
                        existed=true;
                    }               
                }
                if(!existed) {
                    Vector<String> v = new Vector<String>();
                    v.setSize(columnCount);
                    v.setElementAt(pair[0], key_index);
                    v.setElementAt(pair[1], column.getModelIndex());               
                    getTable().getTableModel().getData().add(v);               
                }
            }
    }
    

  • Mod

    Zeig mal die genaue Ausgabe auf der Konsole und gib auch mal values.length aus.

    Woher weißt Du, dass keine Exception geschmissen wird?



  • ok hab den fehler alla!

    pair konnte auch mal nur einen eintrag haben und ich habe die exception vernachlässigt 😃


Log in to reply