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

Similar Messages

  • 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;
    }

  • 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.

  • 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);

  • 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

  • Need help with a activation code for Adobe Acrobat X Standard for my PC,, Don't have older version serial numbers,  threw programs away,  only have Adobe Acrobat X Standard,  need a code to unlock program?

    Need help with a activation code for Adobe Acrobat X Standard for my PC, Don't have older Version of Adobe Acrobat 9, 8 or 7. 

    You don't need to install the older version, you only need the serial number from your original purchase. If you don't have them to hand, did you register? If so, they should be in your Adobe account. If not you really need to contact Adobe, though it isn't clear they will be able to do anything without some proof of purchase etc.

  • 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.

  • Anyone help with linking a bank account to your apple id. The form wants a phone number I only have a UK mobile number and it doesnt sem to want to accept it keeps l;ooping me back to entering a phone number.

    Anyone help with linking a bank account to your apple id. The form wants a phone number I only have a UK mobile number and it doesnt sem to want to accept it keeps l;ooping me back to entering a phone number.

    If you are trying to setup a charge card number on the Apple Store - make sure you are in the Correct country site - icon bottom right last time I saw it - where you can change country.  

  • HT3209 Purchased DVD in US for Cdn viewing. Digital download will not work in Cda or US? please help with new Digital code that will work

    Purchased DVD in US for Cdn viewing. Digital download will not work in Cda or US? please help with new Digital code that will work

    You will need to contact the movie studio that produced the DVD and ask if they can issue you a new code valid for Canada. Apple cannot help you, and everyone here in these forums is just a fellow user.
    Regards.

  • 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

  • Need help regarding Linked List

    I'm a beginner who just spent ages working on the following code.. but need help on re-implementing the following using a linked list, i.e. no array is allowed for customer records but you still can use arrays for names, address, etc.. Hopefully I've inserted enough comments..
    Help very much appreciated!! Thanks! =]
    import java.util.Scanner;
    import java.io.*;
    public class Bank
    /* Private variables declared so that the data is only accessible to its own
         class, but not to any other class, thus preventing other classes from
         referring to the data directly */
    private static Customer[] customerList = new Customer[30];               
         //Array of 30 objects created for storing information of each customer
    private static int noOfCustomers;                                                       
         //Integer used to store number of customers in customerList
         public static void main(String[] args)
              Scanner sc = new Scanner(System.in);
              menu();
         public static void menu()
              char choice;
              String filename;
              int custId,counter=0;
              double interestRate;
    Scanner sc = new Scanner(System.in);
              do
              //Displaying of Program Menu for user to choose
         System.out.println("ABC Bank Customer Management System Menu");     
         System.out.println("========================================");
         System.out.println("(1) Input Data from File");
         System.out.println("(2) Display Data");
         System.out.println("(3) Output Data to File");
                   System.out.println("(4) Delete Record");
                   System.out.println("(5) Update Record");
         System.out.println("(Q) Quit");
                   System.out.println();
                   System.out.print("Enter your choice: ");
                   String input = sc.next();
                   System.out.println();
                   choice = input.charAt(0);     
              //switch statement used to assign each 'selection' to its 'operation'               
         switch(choice)
         case '1': int noOfRecords;
                                       System.out.print("Enter file name: ");
              sc.nextLine();                                             
              filename = sc.nextLine();
                                       System.out.println();
              noOfRecords = readFile(filename);
    System.out.println(+noOfRecords+" records read.");
              break;
         case '2': displayRecords();
              break;
         case '3': writeFile();
         break;
                        case '4': System.out.print("Enter account ID to be deleted: ");
                                       sc.nextLine();
                                       custId = sc.nextInt();
                                       deleteRecord(custId);
                                       break;
                        case '5': if(counter==0)
              System.out.print("Enter current interest rate for saving account: ");
                                            sc.nextLine();
                                            interestRate = sc.nextDouble();
                                            update(interestRate);
                                            counter++;
                                       else
              System.out.println("Error: Accounts have been updated for the month.");
                                            break;
                   }System.out.println();
         }while(choice!='Q' && choice!='q');
    /* The method readFile() loads the customer list of a Bank from a specified
         text file fileName into customerList to be stored as array of Customer
         objects in customerList in ascending alphabetical order according to the
         customer names */
    public static int readFile(String fileName)
         int custId,i=0;
              String custName,custAddress,custBirthdate,custPhone,custAccType;
              double custBalance,curRate;
              boolean d;
    /* Try block to enclose statements that might throw an exception, followed by
         the catch block to handle the exception */
    try
                   Scanner sc = new Scanner(new File(fileName));
    while(sc.hasNext())          
    /* sc.next() gets rid of "Account", "Id" and "=" */
    sc.next();sc.next();sc.next();
    custId = sc.nextInt();
                        d=checkDuplicate(custId);               
    /* checkDuplicate() is a method created to locate duplicating ids in array */
    if(d==true)
    /* A return value of true indicates duplicating record and the sc.nextLine()
         will get rid of all the following lines to read the next customer's record */
                             sc.nextLine();sc.nextLine();sc.nextLine();
                             sc.nextLine();sc.nextLine();sc.nextLine();
                             continue;     
    /* A return value of false indicates no duplicating record and the following
         lines containing the information of that customer's record is being read
         in */
                        if(d==false)
    /* sc.next() gets rid of "Name" and "=" and name is changed to upper case*/
         sc.next();sc.next();
         custName = sc.nextLine().toUpperCase();
    /* sc.nextLine get rids of the following lines to read the next customer's
         record if length of name is more than 20 characters*/
         if(custName.length()>21)
    System.out.println("Name of custId "+custId+" is more than 20 characters");
                                  System.out.println();
         sc.nextLine();sc.nextLine();sc.nextLine();sc.nextLine();
         continue;
    /* sc.next() gets rid of "Address" and "=" */           
         sc.next();sc.next();
         custAddress = sc.nextLine();
    /* sc.nextLine get rids of the following lines to read the next customer's
         record if length of address is more than 80 characters*/                         
                             if(custAddress.length()>81)
    System.out.println("Address of custId "+custId+" is more than 80 characters");
                                  System.out.println();
         sc.nextLine();sc.nextLine();sc.nextLine();sc.nextLine();
         continue;
    /* sc.next() gets rid of "DOB" and "=" */                              
         sc.next();sc.next();
         custBirthdate = sc.nextLine();
    /* sc.nextLine get rids of the following lines to read the next customer's
         record if length of date of birth is more than 10 characters*/                         
                             if(custBirthdate.length()>11)
    System.out.println("D.O.B of custId "+custId+" is more than 10 characters");
                                  System.out.println();
         sc.nextLine();sc.nextLine();sc.nextLine();sc.nextLine();
         continue;
    /* sc.next() gets rid of "Phone", "Number" and "=" */                              
         sc.next();sc.next();sc.next();
         custPhone = sc.nextLine();
    /* sc.nextLine get rids of the following lines to read the next customer's
         record if length of phone number is more than 8 characters*/                         
                             if(custPhone.length()>9)
    System.out.println("Phone no. of custId "+custId+" is more than 8 characters");
                                  System.out.println();
         sc.nextLine();sc.nextLine();sc.nextLine();sc.nextLine();
         continue;
    /* sc.next() gets rid of "Account", "Balance" and "=" */                              
         sc.next();sc.next();sc.next();
         custBalance = sc.nextDouble();
    /* sc.next() gets rid of "Account", "Type" and "=" */                              
                             sc.next();sc.next();sc.next();
                             custAccType = sc.next();
                             if(custAccType.equals("Saving"))
    customerList[noOfCustomers] = new Account1(custId,custName,custAddress,custBirthdate,custPhone,custBalance,custAccType);
    sc.nextLine();
                                                 noOfCustomers++;
                                                 i++;
    else if(custAccType.equals("Checking"))
    customerList[noOfCustomers] = new Account2(custId,custName,custAddress,custBirthdate,custPhone,custBalance,custAccType);
                                                 sc.nextLine();
                                                 noOfCustomers++;
                                                 i++;
    else if(custAccType.equals("Fixed"))
    sc.next();sc.next();sc.next();sc.next();
                                                 curRate = sc.nextDouble();
                                                 Account3 temp = new Account3(custId,custName,custAddress,custBirthdate,custPhone,custBalance,custAccType,curRate);
                                                 customerList[noOfCustomers]=temp;
                                                 sc.nextLine();
                                                 noOfCustomers++;
                                                 i++;
                             else
                                  System.out.println("Account type not defined.");
         if(noOfCustomers==30)
         System.out.println("The customer list has reached its maximum limit of 30 records!");
         System.out.println();
         return noOfCustomers;
    //Exceptions to be caught
    catch (FileNotFoundException e)
    System.out.println("Error opening file");
    System.exit(0);
    catch (IOException e)
    System.out.println("IO error!");
    System.exit(0);
    /* Bubblesort method used to sort the array in ascending alphabetical order
         according to customer's name */
    bubbleSort(customerList);
              return i;
    /* The method displayRecords() displays the data of the customer records on
         screen */
    public static void displayRecords()
    int k;
    /* Displaying text using the printf() method */
         for(k=0;k<noOfCustomers;k++)
         System.out.printf("Name = %s\n", customerList[k].getName());
         System.out.printf("Account Balance = %.2f\n", customerList[k].getBalance());
         System.out.printf("Account Id = %d\n", customerList[k].getId());
    System.out.printf("Address = %s\n", customerList[k].getAddress());
    System.out.printf("DOB = %s\n", customerList[k].getBirthdate());
    System.out.printf("Phone Number = %s\n", customerList[k].getPhone());
         String type = customerList[k].getAccType();
         System.out.println("Account Type = " +type);
    if(type.equals("Fixed"))
         System.out.println("Fixed daily interest = "+((Account3)customerList[k]).getFixed());
         System.out.println();               
    /* The method writeFile() saves the content from customerList into a
         specified text file. Data is printed on the screen at the same time */
    public static void writeFile()
    /* Try block to enclose statements that might throw an exception, followed by
    the catch block to handle the exception */
    try
    int i;
              int n=0;
    //PrintWriter class used to write contents of studentList to specified file
              FileWriter fwStream = new FileWriter("newCustomers.txt");
              BufferedWriter bwStream = new BufferedWriter(fwStream);
              PrintWriter pwStream = new PrintWriter(bwStream);     
    for(i=0;i<noOfCustomers;i++)
         pwStream.println("Account Id = "+customerList.getId());
              pwStream.println("Name = "+customerList[i].getName());
    pwStream.println("Address = "+customerList[i].getAddress());
    pwStream.println("DOB = "+customerList[i].getBirthdate());
    pwStream.println("Phone Number = "+customerList[i].getPhone());
              pwStream.printf("Account Balance = %.2f\n", customerList[i].getBalance());
              pwStream.println("Account Type = "+customerList[i].getAccType());
                   if(customerList[i].getAccType().equals("Fixed"))
                        pwStream.println("Fixed Daily Interest = "+((Account3)customerList[i]).getFixed());
              pwStream.println();
              n++;
    //Closure of stream
    pwStream.close();
              System.out.println(+n+" records written.");
    catch(IOException e)
    System.out.println("IO error!");     
    System.exit(0);
         //Deletes specified record from list
    public static void deleteRecord(int id)
    int i;
              i=locate(id);
    if(i==200)
    //checking if account to be deleted does not exist
    System.out.println("Error: no account with the id of "+id+" found!");
              //if account exists
    else
                        while(i<noOfCustomers)
                             customerList[i] = customerList[i+1];
                             i++;
                        System.out.println("Account Id: "+id+" has been deleted");
                        --noOfCustomers;
         //Updates the accounts
    public static void update(double interest)
    int i,j,k;
              double custBalance,addition=0;
    for(i=0;i<noOfCustomers;i++)
                        if(customerList[i] instanceof Account1)
                             for(j=0;j<30;j++)
                                  addition=customerList[i].getBalance()*interest;
                                  custBalance=customerList[i].getBalance()+addition;
                                  customerList[i].setBalance(custBalance);
                        else if(customerList[i] instanceof Account2)
                             continue;
                        else if(customerList[i] instanceof Account3)
                             for(j=0;j<30;j++)
    addition=customerList[i].getBalance()*((Account3)customerList[i]).getFixed();
    custBalance=customerList[i].getBalance()+addition;
    customerList[i].setBalance(custBalance);
                        else
                             System.out.println("Account type not defined");
              System.out.println("The updated balances are: \n");
              for(k=0;k<noOfCustomers;k++)
    System.out.printf("Name = %s\n", customerList[k].getName());
    System.out.printf("Account Balance = %.2f\n", customerList[k].getBalance());
    System.out.println();
    /* ================== Additional methods ==================== */     
    /* Bubblesort method to sort the customerList in ascending alphabetical
         order according to customer's name */
    public static void bubbleSort(Customer[] x)
    int pass, index;
    Customer tempValue;      
    for(pass=0; pass<noOfCustomers-1; pass++)          
    for(index=0; index<noOfCustomers-1; index++)
    if(customerList[index].getName().compareToIgnoreCase(customerList[index+1].getName()) > 0)
    tempValue = x[index];
    x[index] = x[index+1];
    x[index+1]= tempValue;
    /* Method used to check for duplicated ids in array */     
         public static boolean checkDuplicate(int id)
              int i;
              for(i=0;i<noOfCustomers;i++)
                   if(id == customerList[i].getId())
    System.out.println("Account Id = "+id+" already exists");
                        System.out.println();
    return true;
              }return false;
    /* Method to seach for account id in array */
         public static int locate(int id)
              int j;
              for(j=0;j<noOfCustomers;j++)
                   if(customerList[j].getId()==id)
                        return j;
              j=200;
              return j;
    import java.util.Scanner;
    public class Customer
    /* The following private variables are declared so that the data is only
         accessible to its own class,but not to any other class, thus preventing
         other classes from referring to the data directly */
         protected int id;               
         protected String name,address,birthdate,phone,accType;                              
         protected double balance;               
    // Null constructor of Customer
         public Customer()
              id = 0;
              name = null;
              address = null;
              birthdate = null;
              phone = null;
              balance = 0;
              accType = null;
    /* The following statements with the keyword this activates the Customer
         (int id, String name String address, String birthdate, String phone, double
         balance) constructor that has six parameters of account id, name, address,
         date of birth, phone number, account balance and assign the values of the
         parameters to the instance variables of the object */     
         public Customer(int id, String name, String address, String birthdate, String phone, double balance, String accType)
    //this is the object reference that stores the receiver object     
              this.id = id;
              this.name = name;                         
              this.address = address;
              this.birthdate = birthdate;
              this.phone = phone;
              this.balance = balance;
              this.accType = accType;
    /* The following get methods getId(), getName(), getAddress(), getBirthdate(),
         getPhone(), getBalance() return the values of the corresponding instance
         properties */     
         public int getId()
              return id;
         public String getName()
              return name;
         public String getAddress()
              return address;
         public String getBirthdate()
              return birthdate;
         public String getPhone()
              return phone;
         public double getBalance()
              return balance;
         public String getAccType()
              return accType;
    /* The following set methods setId(), setName(), setAddress(), setBirthdate(),
         setPhone and setBalance() set the values of the corresponding instance
         properties */
         public void setId (int custId)
              id = custId;
         public void setName(String custName)
              name = custName;
         public void setAddress (String custAddress)
              address = custAddress;
         public void setBirthdate (String custBirthdate)
              birthdate = custBirthdate;
         public void setPhone (String custPhone)
              phone = custPhone;
         public void setBalance (double custBalance)
              balance = custBalance;
         public void setAccType (String custAccType)
              accType = custAccType;
    class Account1 extends Customer
         public Account1(int id, String name, String address, String birthdate, String phone, double balance, String accType)
              super(id,name,address,birthdate,phone,balance,accType);
              this.id = id;
              this.name = name;                         
              this.address = address;
              this.birthdate = birthdate;
              this.phone = phone;
              this.balance = balance;
              this.accType = accType;
    class Account2 extends Customer
         public Account2(int id, String name, String address, String birthdate, String phone, double balance, String accType)
              super(id,name,address,birthdate,phone,balance,accType);
              this.id = id;
              this.name = name;                         
              this.address = address;
              this.birthdate = birthdate;
              this.phone = phone;
              this.balance = balance;
              this.accType = accType;
    class Account3 extends Customer
         protected double fixed=0;
         public Account3(int id, String name, String address, String birthdate, String phone, double balance, String accType, double fixed)
              super(id,name,address,birthdate,phone,balance,accType);
              this.id = id;
              this.name = name;                         
              this.address = address;
              this.birthdate = birthdate;
              this.phone = phone;
              this.balance = balance;
              this.accType = accType;
              this.fixed = fixed;
         public double getFixed()
              return fixed;
    Example of a customers.txt
    Account Id = 123
    Name = Matt Damon
    Address = 465 Ripley Boulevard, Oscar Mansion, Singapore 7666322
    DOB = 10-10-1970
    Phone Number = 790-3233
    Account Balance = 405600.00
    Account Type = Fixed
    Fixed Daily Interest = 0.05
    Account Id = 126
    Name = Ben Affleck
    Address = 200 Hunting Street, Singapore 784563
    DOB = 25-10-1968
    Phone Number = 432-4579
    Account Balance = 530045.00
    Account Type = Saving
    Account Id = 65
    Name = Salma Hayek
    Address = 45 Mexican Boulevard, Hotel California, Singapore 467822
    DOB = 06-04-73
    Phone Number = 790-0000
    Account Balance = 2345.00
    Account Type = Checking
    Account Id = 78
    Name = Phua Chu Kang
    Address = 50 PCK Avenue, Singapore 639798
    DOB = 11-08-64
    Phone Number = 345-6780
    Account Balance = 0.00
    Account Type = Checking
    Account Id = 234
    Name = Zoe Tay
    Address = 100 Blue Eyed St, Singapore 456872
    DOB = 15-02-68
    Phone Number = 456-1234
    Account Balance = 600.00
    Account Type = Saving

    1) When you post code, please use[code] and [/code] tags as described in Formatting tips on the message entry page. It makes it much easier to read.
    2) Don't just post a huge pile of code and ask, "How do I make this work?" Ask a specific question, and post just enough code to demonstrate the problem you're having.
    3) Don't just write a huge pile of code and then test it. Write a tiny piece, test it. Then write the piece that will work with or use the first piece. Test that by itself--without the first piece. Then put the two together and test that. Only move on to the next step after the current step produces the correct results. Continue this process until you have a complete, working program.

  • 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

  • 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++;
      }

  • Please help me :'( , I really need help in Linked List & Recursion program.

    Hi everybody..
    I hope all of you are ok..
    I'm new member in this forum and I hope anyone can help me in Linked List $ Recursion issue..
    I should write a Java program that implements a linked list of objects. This program / class will have the following methods:
    1- //print each node starting from startNode upto the end node in the list
    void writeList(Node startNode)
    2- //insert a new element to the end of the list
    void insertEnd(Object element)
    3- //Print each element statring from first element in list to the last element then start //printing each element from the last element to the first element
    void writeMirror()
    4- //delete the last node.
    void deleteEnd()
    5- //returns the number of the nodes in the list.
    int lengthList(ListNode x)
    Implement the above methods using the following restrictions:
    1- All above methods must be implemented as a recursive method.
    2- For the given linked list class, there is only a head reference
    variable, pointing the beginning of the list. Thus there is no last or
    end reference variable.
    I don't know how to write this program :'( ..
    I need your help guys and I will be so happy if anyone can do it for me ..
    The sad girl
    MaRia :(

    Any body can give me any idea any hint that may help
    me ??Hint that will help you: get a personal tutor. This is the wrong place to learn how to program. And you definitely won't learn by having your homework done for you.
    Oh, and I don't care at all that your hamster has diarrhea, your boyfriend broke up with you, both of your parents are dead and unemployed, that you have to look after your 231 siblings all by yourself and that you're forced to take this class and rather want to do something completely different.
    Heard it all before.

  • Hi there can you help with this error code Oxc5d1281

    I refilled the HP cartridges in my Photosmart C 7250 All-in-One and put them in and got this error.  I have D/C power,etc and it still comes up with this error code.  Now what?
    Cheers,
    British_eh

    Hi british_eh
    You could try resetting the printer, details here
    Note though that the reliability of refills tends not be as good as originals, links below FYI.....
    http://h10025.www1.hp.com/ewfrf/wc/document?docname=c00853819&cc=us&dlc=en&lc=en&jumpid=reg_R1002_US...
    http://www.qualitylogic.com/2009HPinktest.pdf
    Kind Regards, Ciara
    Although I am an HP employee, I am speaking for myself and not for HP.
    Twitter: @Ciara_B_HP

Maybe you are looking for

  • Read bytecode of a PDF file

    Hello I must read Bytecode of a .PDF file but the method I use is too slow. Is there anybody can suggest me a faster or better method, please? This is my code public String scriviBC (String strPercorso, String strFile) { binario = ""; try { File file

  • IWeb 09 and Slideshow

    Is there a way to adjust the length of time images appear in the slideshow?

  • Question about inputting data to a pivot table

    Hi, I have 2 questions about using the ADF pivot table component (I would like it for data input). 1. Is it possible to paste into multiple cells (i.e. using cut in Excel for example, and then pasting the cells into the pivot table) ? 2. What is the

  • What do you do when all sound quits working except the ringer on phone calls

    The only sound in my phone that is working is the ringer for phone calls. The sound for apps, keyboard clicks, notifications, texts etc is not working including plugging in my phone charger sound. Please help. This is happening at random.

  • Where can i find a copy of os 10.6.0?

    Where can I get a copy of Leopard 0s 10.6.0? Currently running 10.5.8 I need it to install the lastest version of Adobe design suite and It is even needed to upgrade to lion.