回 帖 发 新 帖 刷新版面

主题:链表中的对象输出

我是把一个加权图的数据本别保存到一个矩阵和一个链表中,但是保存到链表中的数据输不出来,请大家看看


package Aufgaben;

import java.util.LinkedList;
import java.util.ListIterator;
import java.util.Vector;

class GraphEinlesen 

    private int knoten;
    private int kanten;
    private int vonKnotenNummer;
    private int nachKnotenNummer;
    private int kantenGewicht;
    
    public GraphEinlesen(int knoten,int kanten)
    {
        this.knoten = knoten;
        this.kanten = kanten;
    }
    
    public GraphEinlesen(int vonKnotenNummer,int nachKnotenNummer,int kantenGewicht )
    {
        this.vonKnotenNummer = vonKnotenNummer;
        this.nachKnotenNummer = nachKnotenNummer;
        this.kantenGewicht = kantenGewicht;
    }
    
    public int getKnoten()
    {
        return knoten;
    }
    public void setKnoten(int knoten)
    {
        this.knoten = knoten;
    }
    
    public int getKanten()
    {
        return kanten;
    }
    public void setKanten(int kanten)
    {
        this.kanten = kanten;
    }
    
    public int getVonKnotenNummer( )
    {
        return vonKnotenNummer;
    }
    public void setVonKnotenNummer( int vonKnotenNummer)
    {
        this.vonKnotenNummer = vonKnotenNummer;
    }
    
    public int getNachKnotenNummer( )
    {
        return nachKnotenNummer;
    }
    public void setNachKnotenNummer (int nachKnotenNummer)
    {
        this.nachKnotenNummer = nachKnotenNummer;
    }
    
    public int getKantenGewicht( )
    {
        return kantenGewicht;
    }
    public void setKantenGewicht( int kantenGewicht)
    {
        this.kantenGewicht = kantenGewicht;
    }
    
}

public class Speichern
{
    public static void main(String []agrs)throws Exception
    {
        
    GraphEinlesen ge0 = new GraphEinlesen( 7,9);
    
    GraphEinlesen ge1 = new GraphEinlesen( 1,6,5);
    GraphEinlesen ge2 = new GraphEinlesen( 6,2,7);
    GraphEinlesen ge3 = new GraphEinlesen( 1,7,3);
    GraphEinlesen ge4 = new GraphEinlesen( 7,2,4);
    GraphEinlesen ge5 = new GraphEinlesen( 3,1,6);
    GraphEinlesen ge6 = new GraphEinlesen( 5,3,5);
    GraphEinlesen ge7 = new GraphEinlesen( 7,5,1);
    GraphEinlesen ge8 = new GraphEinlesen( 2,4,8);
    GraphEinlesen ge9 = new GraphEinlesen( 4,5,2);
    
    GraphEinlesen []graphEinlesen = new GraphEinlesen[]{ ge1,ge2,ge3,ge4,ge5,ge6,ge7,ge8,ge9};
    
    //speichert in einer Adjazenzmatrix
    
    int matrix[][] = new int[ge0.getKnoten()][ge0.getKnoten()];
    
    for(int i=0;i<ge0.getKnoten();i++)
        for(int j=0;j<ge0.getKnoten();j++)
            matrix[i][j] = 0;
    
    for(int m=0;m<graphEinlesen.length;m++)
    {
        GraphEinlesen ge = graphEinlesen[m];
        matrix[ge.getVonKnotenNummer()-1][ge.getNachKnotenNummer()-1] = ge.getKantenGewicht();
    }
    
    for(int i=0;i<ge0.getKnoten();i++)
    {
        System.out.println("\n");
        for(int j=0;j<ge0.getKnoten();j++)
            System.out.print(matrix[i][j]+" ");
    }
    
    //speichert in einer Adjazenzlist
    
    LinkedList ll= new LinkedList();
    
    for(int i=0;i<ge0.getKnoten();i++)
    {
        LinkedList l= new LinkedList();
                
        for(int j=0;j<graphEinlesen.length;j++)
        {
            GraphEinlesen ge = graphEinlesen[j];
            if(i==ge.getVonKnotenNummer()-1)
            {
                l.add(ge);
            }
        }       
        ll.add(i, l);
    }
    
    /*ListIterator li = ll.listIterator();
    while(li.hasNext())
    {    
        Integer intObj = (Integer)li.next();
        int a = intObj.intValue();
        System.out.println("\n");
        System.out.print(a);
       
    }*/
    
     
    for(Object obj : ll)
    {
        GraphEinlesen gen = (GraphEinlesen)obj;
        System.out.println(gen.getVonKnotenNummer()+","+gen.getNachKnotenNummer()+"="+gen.getKantenGewicht());
    }
    
    
    
    }
    
        
}


















回复列表 (共3个回复)

沙发

如果是在一个链表中的对象可以输出,但是我上面的是作为链表中的链表的对象输出,链表的嵌套,就不行了

板凳

Use Iterator:
Sample code here

          List<String> list  = new LinkedList<String>();
          list.add("aaa");
          list.add("zzz");

          ListIterator<String> iterator = list.listIterator();
  
          while ( iterator.hasNext() )  {
             String item = iterator.next();  // get item  
             System.out.println(item);               
          } 
       

3 楼


多谢启发,问题已解决。

我来回复

您尚未登录,请登录后再回复。点此登录或注册