HELLLP with LInked List

hello Java World,
Have a few questions regarding linked lists:
1) are they already implemented in java or are they just currently an interface/abstract class?
2) Jus to make sure: The linkedlist interface/class implement the List Interface(which is in the hierachy of collections)
3)What are Node objects? (ie. Node head=new Integer(5);)
Do they have anything to do with pointers?
4) Are the various kinds of linked lists(circularly,doubly,singly) already implemented?(This is related to question 1)
Thank you in advance
RahimS

[snip]
4. In general, yup. In java, I think you've only got
the singly linked listSince the LinkedList class implements the List interface, it behaves like any other List, in that you can traverse the thing in order or access its elements randomly. I am not sure I understand the OP's original question, but the API docs do say:
" All of the operations perform as could be expected for a doubly-linked list. "
for what that's worth
Lee

Similar Messages

  • Problem with Linked List

    i have make a database with linked list for a School student counselor.
    The to be store is
    student name, ID, Counseling Date, Progress
    In there there will be record for a student and the Date and progress has to be stored for 4-weeks as the counseling is on weekly basis. These data items will be multivalued(what u say in Databases) how i can store this repetitive data in linked list for one student.

    By capsulating the data in objects and adding the objects to a linked list.

  • Getting null returned when working with Linked Lists

    Ok, i'm having the same problem with a couple of methods that deal with linked lists, and i was hoping someone could lend me a hand. First off, the specifications for one of the methods:
    An iterative procedure smallElements
    PARAMETERS: a ListItem reference, ls
    an integer n
    RETURN VALUE: a new list identical to the given list, except
    that it contains no occurrences of numbers greater than n.
    for example, given input list ( 3 2 6 3 4 ) and 3,
    the return value would be the list ( 3 2 3 )
    And here is my code:
    ListItem smallElements(ListItem ls, int n){
    ListItem small = null;
    ListItem result = small;
    if(ls == null)
    return null;
    else{
    while(ls!=null){
         if(ls.number <=n){
         result = new ListItem(ls.number, null );
         result = result.next;
         ls = ls.next;
    return small;
    Like the topic says, i keep getting null returned as a value. I have tried setting small= new ListItem(ls.number, null), and that actually returns the correct list, except that the first number is repeated twice. I would greatly appreciate any assistance.

    I am not sure I understand your code. What exactly are those ListItems? It seems to me that you are dealing with single List elements, while the specification says that you are supposed to return a List.
    But the main error is that you have two ListItem objects there, which seems to fill the same purpose - only that you use one, and return the other. 'small', which is the one you return, never get set to anything else than null.
    I think you should do something like this: make a new, empty list to return
    for element in parameterlist
        if number is smaller than n
            add this element to returnlist
    return returnlist

  • Help with linked lists and searching

    Hi guys I'm very new to java. I'm having a problem with linked lists. the program's driver needs to create game objects, store them, be able to search the linked list etc. etc. I've read the API but I am really having trouble understanding it.
    First problem is that when I make a new game object through the menu when running the program, and then print the entire schedule all the objects print out the same as the latest game object created
    Second problem is searching it. I just really have no idea.
    Here is the driver:
    import java.util.*;
    public class teamSchedule
         public static void main (String[]args)
              //variables
              boolean start;
              game game1;
              int selector;
              Scanner scanner1;
              String date = new String();
              String venue = new String();
              String time = new String();
              String dateSearch = new String();
              double price;
              String opponent = new String();
              int addindex;
              List teamSchedLL = new LinkedList();
              String dateIndex = new String();
              String removeYN = new String();
              String venueIndex = new String();
              String opponentIndex = new String();
              start = true; //start makes the menu run in a while loop.
              while (start == true)
                   System.out.println("Welcome to the Team Scheduling Program.");
                   System.out.println("To add a game to the schedule enter 1");
                   System.out.println("To search for a game by date enter 2");
                   System.out.println("To search for a game by venue enter 3");
                   System.out.println("To search for a game by opponent enter 4");
                   System.out.println("To display all tour information enter 5");
                   System.out.println("");
                   System.out.println("To remove a game from the schedule enter search for the game, then"
                                            + " remove it.");
                   System.out.println("");
                   System.out.println("Enter choice now:");
                   scanner1 = new Scanner (System.in);
                   selector = scanner1.nextInt();
                   System.out.println("");
                   if (selector == 1)
                        //add a game
                        scanner1.nextLine();
                        System.out.println("Adding a game...");
                        System.out.println("Enter game date:");
                        date = scanner1.nextLine();
                        System.out.println("Enter game venue:");
                        venue = scanner1.nextLine();
                        System.out.println("Enter game time:");
                        time = scanner1.nextLine();
                        System.out.println("Enter ticket price:");
                        price = scanner1.nextDouble();
                        scanner1.nextLine();
                        System.out.println("Enter opponent:");
                        opponent = scanner1.nextLine();
                        game1 = new game(date, venue, time, price, opponent);
                        teamSchedLL.add(game1);
                        System.out.println(teamSchedLL);
                        System.out.println("Game created, returning to main menu. \n");
                        start = true;
                   else if (selector == 2)
                        //search using date
                        scanner1.nextLine();
                        System.out.println("Enter the date to search for in the format that it was entered:");
                        dateIndex = scanner1.nextLine();
                        if (teamSchedLL.indexOf(dateIndex) == -1)
                             System.out.println("No matching date found.  Returning to main menu.");
                             start = true;
                        else
                             //give user option to remove game if they wish.
                             System.out.println(teamSchedLL.get(teamSchedLL.indexOf(dateIndex)));
                             System.out.println("Would you like to remove this game? Y/N");
                             removeYN = scanner1.nextLine();
                             if (removeYN == "Y" || removeYN == "y")
                                  teamSchedLL.remove(teamSchedLL.indexOf(dateIndex));
                                  System.out.println("Scheduled game removed.");
                        System.out.println("\n Returning to main menu. \n");
                        start = true;
                   else if (selector == 3)
                        //search using venue name
                        scanner1.nextLine();
                        System.out.println("Enter the venue to search for in the format that it was entered:");
                        venueIndex = scanner1.nextLine();
                        if (teamSchedLL.indexOf(venueIndex) == -1)
                             System.out.println("No matching venue found.  Returning to main menu.");
                             start = true;
                        else
                             //give user option to remove game
                             System.out.println(teamSchedLL.get(teamSchedLL.indexOf(venueIndex)));
                             System.out.println("Would you like to remove this game? Y/N");
                             removeYN = scanner1.nextLine();
                             if (removeYN == "Y" || removeYN == "y")
                                  teamSchedLL.remove(teamSchedLL.indexOf(venueIndex));
                                  System.out.println("Scheduled game removed.");
                        System.out.println("\n Returning to main menu. \n");
                        start = true;
                   else if (selector == 4)
                        //search using opponent name
                        scanner1.nextLine();
                        System.out.println("Enter the opponent to search for in the format that it was entered:");
                        opponentIndex = scanner1.nextLine();
                        if (teamSchedLL.indexOf(opponentIndex) == -1)
                             System.out.println("No matching opponent found.  Returning to main menu.");
                             start = true;
                        else
                             //give user option to remove game
                             System.out.println(teamSchedLL.get(teamSchedLL.indexOf(opponentIndex)));
                             System.out.println("Would you like to remove this game? Y/N");
                             removeYN = scanner1.nextLine();
                             if (removeYN == "Y" || removeYN == "y")
                                  teamSchedLL.remove(teamSchedLL.indexOf(opponentIndex));
                                  System.out.println("Scheduled game removed.");
                        System.out.println("\n Returning to main menu. \n");
                        start = true;
                   else if (selector == 5)
                        //display tour info
                        System.out.println("Tour Schedule:");
                        System.out.println(teamSchedLL + "\n");
                   else
                        System.out.println("Incorrect choice entered. Returning to menu");
                        System.out.println("");
                        System.out.println("");
                        System.out.println("");
    and here is the game class:
    public class game
         private static String gameDate;
         private static String gameVenue;
         private static String gameTime;
         private static double gamePrice;
         private static String gameOpponent;
         public static String gameString;
         //set local variables equal to parameters
         public game(String date, String venue, String time, double price, String opponent)
              gameDate = date;
              gameVenue = venue;
              gameTime = time;
              gamePrice = price;
              gameOpponent = opponent;
         //prints out info about the particular game
         public String toString()
              gameString = "\n --------------------------------------------------------";
              gameString += "\n Date: " + gameDate + " | ";
              gameString += "Venue: " + gameVenue + " | ";
              gameString += "Time: " + gameTime + " | ";
              gameString += "Price: " + gamePrice + " | ";
              gameString += "Opponent: " + gameOpponent + "\n";
              gameString += " --------------------------------------------------------";
              return gameString;
    }I'm sure the formatting/style and stuff is horrible but if I could just get it to work that would be amazing. Thanks in advance.
    Message was edited by:
    wdewind

    I don't understand your first problem.
    Your second problem:
    for (Iterator it=teamSchedLL.iterator(); it.hasNext(); ) {
    game game = (game)it.next();
    // do the comparation here, if this is the game want to be searched, then break;
    }

  • Help PLEASE with linked list. Inserting a string in the middle of

    I'm trying to insert new strings to a linked list but it seem i cant never insert. the following code has the instructions. What i'm I not doing right? If i try to use the code, the new strings don't go through
    please help someone
    // This method should insert a new node containing the string newString immediately after the first
        // occurrence of the string aString in the list. If aString is not in the list, the method should add a node
        // containing newString to the tail of the list.
        public void insertAfter(String newString, String aString)
            StringLLNode newNode = new StringLLNode();
            newNode.setData(newString);
            //Check if HeadNode == aString
            if (headNode.getData().equalsIgnoreCase(aString))
                headNode = newNode;
            //rest of the nodes
            StringLLNode currNode = headNode;
            while(currNode != null)
                if (currNode.getData().equalsIgnoreCase(aString))
                        newNode.setNext(currNode);
                        //System.out.println("It went THROUGH");
                currNode = currNode.getNext();
            //Last Node
            if (currNode != null)
                newNode.setNext(headNode);
        }

    I have to agree with flounder, go grab a pen and paper and logically work thru the code snippet you posted.
    public void insertAfter(String newString, String aString)
            StringLLNode newNode = new StringLLNode();
            newNode.setData(newString);
            //Check if HeadNode == aString
            if (headNode.getData().equalsIgnoreCase(aString))
                headNode = newNode;
            //rest of the nodes
            StringLLNode currNode = headNode;
            while(currNode != null)
                if (currNode.getData().equalsIgnoreCase(aString))
                        newNode.setNext(currNode);
                        //System.out.println("It went THROUGH");
                currNode = currNode.getNext();
            //Last Node
            if (currNode != null)
                newNode.setNext(headNode);
    }Given a linked list [A-E] we have: A => B => C => D => E. Each Node is referencing the node to it's right, so A references B, D references E etc.
    For example take aString = "A" and newString = "AB". Your code suggests the following:
    1. Create new_node "AB"
    2. if head[A] equals aString[A], TRUE
    2.a head = new_ node
    Now the resulting linkedlist is the following:
    AB => Null
    what happened to the rest of the list?
    Now we go on to your updated example, we result in the following list:
    A => AB => Null
    hmm do you see a pattern here? when inserting a new node we are disregarding any reference to the tail of the list.
    Extending on that idea we have the following pseudo code
    1. if node to be inserted
    1.a new_node.next = list_tail
    1.b current_node.next = new_node
    A => B => C => D => E, where newnode=AA
    AA => B => C => D => E //using 1.a
    A => AA => B => C => D => E //using 1.b
    Mel

  • How  to Implement a Chained Hash Table with Linked Lists

    I'm making a migration from C/C++ to Java, and my task is to implement a Chained Hash Table with a Linked List. My problem is to put the strings(in this case names) hashed by the table using de Division Metod (H(k)= k mod N) in to a Linked list that is handling the colisions. My table has an interface implemented(public boolean insert(), public boolean findItem(), public void remove()). Any Help is needed. Thanks for everyone in advance.

    OK. you have your hash table. What you want it to do is keep key/value pairs in linked lists, so that when there is a collision, you add the key/value pair to the linked list rather than searching for free space on the table.
    This means that whenever you add an item, you hash it out, check to see if there is already a linked list and if not, create one and put it in that slot. Then in either case you add the key/value pair to the linked list if the key is not already on the linked list. If it is there you have to decide whether your requirements are to give an error or allow duplicate keys or just keep or modify one or the other (old/new).
    When you are searching for a key, you hash it out once again and check to see if there is a linked list at that slot. If there is one, look for the key and if it's there, return it and if not, or if there was no linked list at that slot, return an error.
    You aren't clear on whether you can simply use the provided linked-list implementations in the Java Collections or whether you have to cobble the linked list yourself. In any case, it's up to you.
    Is this what you're asking?
    Doug

  • Help with linked list code.

    Here's a basic linked list code that I need help on.
    What I need assistance with:
    1. How would I rewrite and delete words/phrases in the file IO section of my code?
    2. How would I make the code recognize all the words on each line of the linked list? Only the words on the first line of the file go into the linked list.
    import java.util.LinkedList;
    import java.io.*;
    import javax.swing.JOptionPane;
    public class LinkedLists {
        public static void delete (LinkedList test)
            int a = Integer.parseInt(JOptionPane.showInputDialog(null,
            "Enter a position to delete"));
            test.remove(a - 1);
            System.out.print(test);
        public static void add (LinkedList test)
            String user = JOptionPane.showInputDialog(null, "What to input?");
            int b = Integer.parseInt(JOptionPane.showInputDialog(null,
                    "What position to enter it in?"));
            test.add(b - 1, user);
            System.out.print(test);
        public static void fileRead(LinkedList test) throws IOException
            BufferedReader fileIn;
            String text;
            fileIn = new BufferedReader(new FileReader("z:/data.txt"));
            text = fileIn.readLine();
            fileIn.close();
            int b = Integer.parseInt(JOptionPane.showInputDialog(null,
                    "What position to enter it in?"));
            test.add(b - 1, text);
            System.out.print(test);
        public static void fileWrite(LinkedList test) throws IOException
            PrintWriter fileOut;
            fileOut = new PrintWriter(new FileWriter("z:/data.txt",true));
            String user = JOptionPane.showInputDialog(null, "What to input?");
            fileOut.println(user);
            fileOut.close();
            fileRead(test);
        public static void main(String[] args)  {
            LinkedList test = new LinkedList();
            test.addLast("Fly");
            test.addLast("money");
            test.addLast("awesome");
            test.addLast("woot");
            test.addLast("yay");
            System.out.print(test);
            System.out.println();
            int x = Integer.parseInt(JOptionPane.showInputDialog(null,
                    "Enter \n1 to Delete \n2 to Add \n3 to read data from file \n4 to write into the file and add to list"));
            if (x == 1) {
                delete(test);
            if (x == 2) {
                add(test);
            if (x == 3) {
                try {
                    fileRead(test);
                } catch (IOException e) {
                    e.printStackTrace();
            if(x==4)
                try {
                    fileWrite(test);
                } catch (IOException e) {
                    e.printStackTrace();
    }Edited by: Johnston on Sep 16, 2007 1:13 AM

    Hi,
    Johnston wrote:
    1. How would I rewrite and delete words/phrases in the file IO section of my code?You want to replace or remove in/from the file?
    First you have to define a file format. This is not a Java technical term, but a thing what you have to keep in mind. Simplest format is:
    - each ListItem is one line in the file closed with newline.
    Now you can read the file line by line and store the lines in a memory structure (LinkedList for ex ;-)). Then replace or remove the designated elements an write the file new by iterate over the list and write each item as line in the file.
    Johnston wrote:
    2. How would I make the code recognize all the words on each line of the linked list? Only the words on the first line of the file go into the linked list.You have to read the file line by line and then add each line as item of the list.
    Examples for reading/writing textfiles:
    http://www.exampledepot.com/egs/java.io/pkg.html#Reading%20and%20Writing
    Btw: Deal with Generics (see http://java.sun.com/docs/books/tutorial/extra/generics/index.html) an use this knowledge to declate your List better.
    greetings
    Axel

  • Need help with linked lists.

    I have a school assignment to make a linked list with a linked list.
    The first basic is to make a list of people, and link them together in a linked list. So far, so good.
    The problem comes when I'm going to make linked lists in each of these objects that include the relationships between the people in it.
    So If I have 10 peolpe in a list, person 1 might know person 3, 4 and 8. They will all know person 1 back of course. My problem is that it isn't just one group of friends, person 3 might not know person 4 and 8, but maybe he knows person 10. So all need "their own" list.
    Therefor I can't see how I'm supposed to use linked lists for them, as I can't just link them togeter with e.g. "Person nextFriend;" The text says specifically to use linked lists. Well, I'm stuck.
    Edited by: Skruf on Jan 27, 2009 3:22 PM

    Skruf wrote:
    I know it doesn't matter what the objects represent, I just needed a way to explain.
    But a linked list is basically just a redirect to the next in the list, right?No, a linked list is a particular implementation of a list.
    Then I can't see how it's possible to make individual friend lists.No clue what problem you're having.
    People with links
    null - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - nullThat means nothing.
    I can't see how that can be used to make independent links. Do they mean that I'm support to stort it in arrays or something then?
    The person list, is (as you can see in my "illustration") only a "next" and "previous" person, so I can't use that way to link the friends together. nextFriend and lastFriend obviously doesn't work.
    That's my problemLike I said: A Person object contains a linked list. In that linked list you put references to that Person's friends.

  • Having trouble with Linked Lists

    I'm making a JApplet with buttons from a Linked List, and the buttons should be unique but they're all returning the same icon and string. Also my refreshImages method and deleteStudents method aren't working except for the very last button. This seems like it's just because of how Linked Lists operate, but I can't wrap my head around it.
    public class FacebookApplet extends JApplet implements ActionListener{
         private Scanner input;
         protected RefSortedList studentsList;
         protected RefUnsortedList buttonList;
         Student studentVar;
         private JButton b, refreshButton, deleteButton;
         private JPanel buttonPanel, etcPanel;
          * Calls:     readStudentNames, setUpImages
         public void init(){
              readStudentNames();
              setUpImages();
              setLayout(new BorderLayout());
              setSize(500,670);
              etcPanel = new JPanel(new BorderLayout());
              refreshButton = new JButton("Refresh");
              deleteButton = new JButton("Delete");
              buttonList.reset();
              etcPanel.add("West", refreshButton);
              etcPanel.add("East", deleteButton);
              add("North", buttonPanel);
              add("South", etcPanel);
              refreshButton.addActionListener(this);
              deleteButton.addActionListener(this);
          * Pre:          students.dat in current directory
          *                studentList instantiated
          * Post:     studentList has Student objects with names, not images(yet)
          * Purpose:     to set up studentList with student names
         private void readStudentNames(){
              try {
                   FileReader dataInput = new FileReader("students.dat");
                   input = new Scanner(dataInput);
              } catch (FileNotFoundException e) {
                   System.err.println("ERROR:Students.dat file not found");
                   e.printStackTrace();
              studentsList = new RefSortedList();
              while(input.hasNextLine()){
                   String studentName = input.nextLine();
                  studentVar = new Student(studentName);
                   studentsList.add(studentVar);
              System.out.println(studentsList + "");
         }//readStudentNames()
          * Pre:          studentList set up with names
          *                .jpg files are in current directory
          * Post:     buttons set up with images in buttonList and buttonPanel
          * Purpose:     to set up buttons with Student names and images
         private void setUpImages(){
              ImageIcon studentPic;
              Student studentStringPic;
              studentsList.reset();
              buttonList =  new RefUnsortedList();
              buttonPanel = new JPanel(new GridLayout(5,3));
              for (int k = 0; k < studentsList.size(); k++) {
                   studentPic = new ImageIcon(studentVar.toString() + ".jpg");
                   studentStringPic = new Student(studentVar.toString(), studentPic);
                   b = new JButton(studentStringPic.toString(), studentStringPic.getIcon());
                   b.setVerticalTextPosition(AbstractButton.BOTTOM);
                  b.setHorizontalTextPosition(AbstractButton.CENTER);
                   b.addActionListener(this);
                   buttonList.add(b);
                  buttonPanel.add(b);
                   studentsList.getNext();
          * Pre:          buttonList set up
          * Post:     All buttons enabled
          * Purpose:     To enable all buttons in buttonList
         public void refreshImages(){
              for(int i=0;i<buttonList.size();i++){
                   b.setEnabled(true);
                   buttonList.getNext();
         * Pre:     buttonPanel, buttonList set up
         * Post:    disabled buttons removed from buttonPanel
         * Purpose: To delete those students whose buttons are disabled
        private void deleteStudents(){
             for(int k=0; k<buttonList.size();k++){
                  if(!b.isEnabled())
                       buttonPanel.remove(b);
                  buttonList.getNext();
             this.repaint();
         public void actionPerformed(ActionEvent e) {
              JButton b = (JButton) e.getSource();
              if(e.getSource() == deleteButton){
                   deleteStudents();
              else if(e.getSource() == refreshButton){
                   refreshImages();
              else{
                   b.setEnabled(false);
    }Student Class:
    public class Student implements Comparable{
         private String name;
         private Icon icon;
         public Student(String nameT){
              name = nameT;
         public Student(String nameT, Icon iconT){
              name = nameT;
              icon = iconT;
         public int compareTo(Object arg0) {
              if(this.equals(name))
                   return 1;
              else
                   return -1;
         }//compareTo()
         public boolean equals(){
              boolean equalTo = false;
              if(this.equals(name))
                   equalTo = true;
              return equalTo;
         }//equals()
          * Pre: LL is instantiated and filled
          * Post: none
          * Purpose: return the name of the student
         public String toString(){
              return name;
         }//toString()
         public Icon getIcon(){
              return icon;
    }

    I fixed the other things, I just need to fix two more problems and then clean up my code so it looks more professional.
    First problem: When I add the Student variables to the studentsList, they aren't sorted. I think this is because they aren't being read as Strings and so there's no way to compare them. I could just do studentVar.toString(), but then studentsList would be full of Strings and not Students. Any ideas?
          * Pre:          students.dat in current directory
          *                studentList instantiated
          * Post:     studentList has Student objects with names, not images(yet)
          * Purpose:     to set up studentList with student names
         private void readStudentNames(){
              try {
                   FileReader dataInput = new FileReader("students.dat");
                   input = new Scanner(dataInput);
              } catch (FileNotFoundException e) {
                   System.err.println("ERROR:Students.dat file not found");
                   e.printStackTrace();
              studentsList = new RefSortedList();
              while(input.hasNextLine()){
                   String studentName = input.nextLine();
                  studentVar = new Student(studentName);
                   studentsList.add(studentVar);
              System.out.println(studentsList + "");
         }//readStudentNames()Here's the add() method of RefSortedList:
    public void add(Comparable element)
      // Adds element to this list.
        LLObjectNode prevLoc;     // trailing reference
        LLObjectNode location;    // traveling reference
        Comparable listElement;   // current list element being compared     
        boolean moreToSearch;            
        // Set up search for insertion point.
        location = list;
        prevLoc = null;
        moreToSearch = (location != null);
        // Find insertion point.
        while (moreToSearch)
          listElement = (Comparable)location.getInfo();
          if (listElement.compareTo(element) < 0)  // list element < add element
             prevLoc = location;
             location = location.getLink();
             moreToSearch = (location != null);   // stop looking at end of list
          else
            moreToSearch = false;     // list element >= add element
        // Prepare node for insertion.
        LLObjectNode newNode = new LLObjectNode(element);
        // Insert node into list.
        if (prevLoc == null)        
          // Insert as first node.
          newNode.setLink(list);
          list = newNode;
        else
          // Insert elsewhere.
          newNode.setLink(location);
          prevLoc.setLink(newNode);
        numElements++;
      }

  • Help with copying contents of file to link list please

    Hi,
    Below is a snippet of code I am playing with. As you can see I have created a LinkList, I now need to copy the contents of a csv file in to that list. The file is several lines long and I need each line in the list.
    I know how to add to the list manually i.e.,
    list.add("First entry in list");
    Could someone help me out with this please.
    Many thanks.
    (***CODE***)
    private LinkedList list = new LinkedList();
         public LinkTest()
              // ** List content START **
              // Open the file today.csv
              File inFile = new File("C:\\today.csv");
         // Create a file stream, wrapping the file
         FileReader fileReader = new FileReader(inFile);
         // Create a second wrapper,
    BufferedReader bufReader = new BufferedReader(fileReader);
         // Read in the first line...
         String s;
         s = bufReader.readLine();
         list.add(s);
         StringTokenizer st = new StringTokenizer(s);
         while (st.hasMoreTokens())
    System.out.println(st.nextToken());
         // ** List content END **
         

    I looked at your code and I thought, what's the question for, it's already adding lines to the list. And then I looked again and had the same thought. The third time I looked I noticed you didn't code the loop that read all the lines from the file. Silly me, I thought your question had something to do with linked lists.
    Anyway, to answer your real question, which is how do you read all the lines from a text file:while ((s = bufReader.readLine()) != null) {
      // do something with the String s here
      // such as adding it to a linked list
    }

  • A linked list question.

    So, I believe I understand linked lists for the most part, except for two lines....
        boolean add(Transaction item)
            for (Transaction curr = first; curr != null; curr = curr.next)
                if (curr.part_num == item.part_num)
                    return false;
            Transaction newItem = new Transaction();
            newItem.transcode = item.transcode;
            newItem.description = item.description;
            newItem.part_num = item.part_num;
            newItem.quantity = item.quantity;
            newItem.next = first;
            first.next = newItem;
            return true;
        }first is null, so First.next would be the first available space for actual insertion, and this is why it then puts null as newItem.next (the end of the list), and sticks newItem in first.next?
    Im glad I read that pass by value thing earlier at the Java Ranch place...
    Heres my actual question: When newItem.next = first; is called, it just copies null as the next field, but leaves the null in first alone right? And then it takes first.next and makes newItem copy into that field, thus inserting the first real item in the list?
    Please tell me I made that connection right. :-D
    Thanks!!

    Pictures are worth a hundred words with linked lists. Did you even put a pencil and paper next to your computer while doing this program, so that you could draw what is happening when you get confused?
    If first is null, then the for loop is skipped--because first is assigned to curr and the loop only executes when curr is not equal to null.
    So, this happens:
    newItem = new Transaction()
    int Transcode = 0
    String description = null
    int partNumber = 0
    int quantity = 0
    Tranasaction next = nullThen values are assigned to each field:
    newItem
    int Transcode = 10
    String description = "screw"
    int partNumber = 46
    int quantity = 200
    //freeze execution here:
    Tranasaction next = null (what will happen here??)Your assumption was:
    Transaction first = null
    That means first does not refer to a Transaction object. Therefore, first does not have a description member, a quantity member, etc., and this is what things look like just before newItem.next = first; is executed:
    newItem ----> Transaction
                  int Transcode = 10
                  String description = "screw"
                  int partNumber = 46
                  int quantity = 200
                  Tranasaction next = null
    first ------> nullNow,
    When newItem.next = first; is calledthings change to this:
    newItem ----> Transaction
                  int Transcode = 10
                  String description = "screw"
                  int partNumber = 46
                  int quantity = 200
          /-------Tranasaction next
    first ------> null That isn't what you want. When you add() a Transaction object to the end of your linked list, it's next member should be null. It's the end of the chain, so there is no next.
    And then it takes first.next and makes newItem copy
    into that field, thus inserting the first real item in the
    list?No. first is null so it does not refer to a Transaction object, and therefore there is no next member variable and consequently no such thing as first.next. You need to understand that null and a Transaction object that has 0 for every member are not the same.
    But suppose for a minute that null and a Transaction object with zeros for every field were the same thing, so that first.next existed. If that was the case, then you could assign newItem to first.next. But, then you would be left with this:
    first
    int Transcode = 0
    String description = null
    int partNumber = 0
    int quantity = 0
    Tranasaction next = newItemWould you want the first Transaction object in your LinkedList to be almost entirely empty?
    Instead, if first is null, you want to make first refer to newItem, i.e. you want to do this:
    newItem ----> Transaction
                  int Transcode = 10
                  String description = "screw"
                  int partNumber = 46
                  int quantity = 200
                  Tranasaction next = null
    first ----/   nullThen when the add() method ends, since newItem is a local variable, it will be destroyed leaving you with this:
                  Transaction
                  int Transcode = 10
                  String description = "screw"
                  int partNumber = 46
                  int quantity = 200
                  Tranasaction next = null
    first ----/   null

  • Help on Linked List

    Hey people, i need a small help on my linked list.
    Ok, what i'm trying to do is have a search function with a linked list using strings. First i will have a string, i will then compute the ASCII value for that and take MOD 71 lets say. For example, a string has an ASCII value of 216, MOD 71 of this gives me 3. I will then have an array of 71, and each array will point to a linked list. There will be as many linked list as there are of arrays (71). I will then store this string at index [3] in the linked list in which the array points to.
    My problem for now is, how do i for example create 71 linked list? So far i can create only 1. To create another is easy, but if i have 71 the code will be too much. Is there an iterator i could use that easily creates 71? Sorry about this, i'm not really good with linked list with Java. Anyway, here is what i have now :).
    public class MyLinkedListElement {   
            String string;
            MyLinkedListElement next;
            public MyLinkedListElement(String s) {   
                string = s;
                next = null;   
            public MyLinkedListElement getNext() {
                return next;       
            public String getValue() {
                return string;
    public class MyLinkedList {
        public static MyLinkedListElement head;
        public MyLinkedList() {   
            head = null;
       public static void addToHead(String s) {
            MyLinkedListElement a = new MyLinkedListElement(s);
            if (head == null) {
                head = a;
            } else {
                a.next = head;
                head = a;       
        public static void main(String[] args) {
              String[] arr = {"Bubble", "Angie", "Bob", "Bubble", "Adam"};
              for (int i = 0; i < arr.length; i++) {
                          addToHead(arr);
    MyLinkedListElement current = head;
    while (current != null) {
    System.out.println(current.getValue());
    current = current.next;
    }I can have an array of strings and easily add them to a linked list.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

    I am very confused now, i just need to store a string value inside an array of linked list. But i can't somehow do it. I am very close, i can store the value in a linked list but the array of linked list, this is what i have.
    public class MyLinkedListElement {   
            String string;
            MyLinkedListElement next;
            public MyLinkedListElement(String s) {   
                string = s;
                next = null;   
            public MyLinkedListElement getNext() {
                return next;       
            public String getValue() {
                return string;
    public class MyLinkedList {
        public MyLinkedListElement head;
        public MyLinkedList() {   
              head = null;
        public void addToHead(String s) {
             MyLinkedListElement  a = new MyLinkedListElement(s);
             MyLinkedList[] arrayOfLinkedLists = new MyLinkedList[71];
             for(int i = 0; i < arrayOfLinkedLists.length; i++) {
                 arrayOfLinkedLists[i] = new MyLinkedList();
             if (head == null) {    
                 head = a;
             } else {
                 a.next = head;
                 head = a;       
        public void print(MyLinkedListElement current) {
              while (current  != null) {
                    System.out.println(current.getValue());
                    current = current.next;
        public static void main(String[] args) {
              String[] arr = {"Bubble", "Angie", "Bob", "Bubble", "Adam"};
              MyLinkedList listInstance = new MyLinkedList();
              for (int i = 0; i < arr.length; i++) {
                    listInstance.addToHead(arr);
    MyLinkedListElement current = listInstance.head;
    listInstance.print(current);

  • Linked list- error problem.... HELP!!!

    Just got to the point that i'm better at drinking java than programing java....
    how ever... I have done person register with Linked list. There are like 4 options:
    1. New post
    2. search
    3. search and change
    4. remove post
    U can enter your name, adress and personal code number while making a new post, but when I've removed it ( l.list.remove(p);)and then search for it I get the error message "Exception in thread "main"....bla bla..". Why? and how do I get around this prob? PLEASE HELP ME!! gotta hand this in tonight!
    Thank U!!
    //Phil

    Phil,
    LinkedList itself works as advertised (1.3.1). For example:
    LL = LinkedList()
    LL.add("apple")
    LL.add("battle")
    LL.add("cattle")
    // printing LL yields all 3
    LL.remove("battle")
    // printing LL yields apple, cattle
    You may need to post for responders to get a better idea. If posting code please enclose in  blocks so it's formatted properly.
    --A                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • New to java  -especially linked lists

    I�m trying to work with linked lists but not having much luck�
    Overall, the program must create a datastructure that will hold titles of articles. Up to 10 keywords can be added to each article and it must then be possible to search all of the titles for matches to the keyword.
    Currently I�m stuck in a for-loop � my linked list (articleList) is not accepted. Any help would be much appreciated. The following error occurs when I attempt to compile:
    SearchMachine.java:30: cannot resolve symbol
    symbol : variable articleList
    location: class SearchMachine
              for(ListIterator listiter = articleList.listIterator(); listiter.hasNext();)
    ^
    import java.util.*;
    class Document
         private String title;
         private String keywords [] = new String [10];
         private int last = 0;
         public Document (String _title)
              String title = _title;
         public void addKeyword(String kw)
              if(last < 9)
                   keywords [last]= kw;
                   last ++;
                   System.out.println("The keyword " + kw + " has now been added");
              else if (last == 9)
                   keywords [last]= kw;
                   System.out.println ("The document now has 10 keywords. No more can be added");
    class SearchMachine
         SearchMachine()
              LinkedList articleList = new LinkedList ();
              articleList.add (new Document ("Oracle 8 the new SQL programming"));
              articleList.add (new Document ("Java programming made easy"));
         public void print()
              for(ListIterator listiter = articleList.listIterator(); listiter.hasNext();)
                   System.out.println(listiter.next());
         public static void main (String [] args)
              SearchMachine search;     
              search = new SearchMachine();
              search.print();

    This is a basic scope issue. You declare the variable articleList inside the constructor block and thus it's visible only in the constructor block. The variable doesn't exist anywhere else but in SearchMachine() {...} The solution is to move the line "LinkedList articleList = new LinkedList();" three lines up, outside the constructor but inside the class definition, so that articleList becomes a member of the SearchMachine class.

  • How to add SharePoint 2013 Promoted link list view web part in page programatically with Tiles view using CSOM.

    How to add SharePoint 2013 Promoted link list view web part in page programatically with Tiles view using CSOM. I found that it can be
    done by using XsltListViewWebPart class but how can I use this one by using shraepoint client api.
    shiv

    Nice, can you point me to the solution please ?
    I'm  trying to do this but I get an error : 
    Web Part Error: Cannot complete this action. Please try again. Correlation ID: blablabla
    StackTrace:    at Microsoft.SharePoint.SPViewCollection.EnsureViewSchema(Boolean fullBlownSchema, Boolean bNeedInitallViews)     at Microsoft.SharePoint.SPList.GetView(Guid viewGuid)   
    All help really appreciated.

Maybe you are looking for