繁体   English   中英

如何在Java中使用双向链表接受字符串和整数?

[英]how to accept string and Integer using doubly linked list in java?

我使用双重喜欢的列表创建了一个菜单驱动程序。 程序正在接受整数值。 但是我想要接受整数和字符串的程序,创建一个双向链表,其中每个节点都包含一个字符串和整数的字符。 我如何修改代码,请帮助我...? 这是我的代码,

package car;

    import java.util.Scanner;

    public class DoublyLinkedList {
         public static void main(String[] args)
            {            
                Scanner scan = new Scanner(System.in);
                /* Creating object of linkedList */
                linkedList list = new linkedList(); 
                System.out.println("Doubly Linked List Test\n");          
                char ch;
                /*  Perform list operations  */
                do
                {
                    System.out.println("\nDoubly Linked List Operations\n");
                    System.out.println("1. insert at begining");
                    System.out.println("2. insert at end");
                    System.out.println("3. insert at position");
                    System.out.println("4. delete at position");
                    System.out.println("5. check empty");
                    System.out.println("6. get size");

                    int choice = scan.nextInt();            
                    switch (choice)
                    {
                    case 1 : 
                        System.out.println("Enter integer element to insert");
                        list.insertAtStart( scan.nextInt() );                     
                        break;                          
                    case 2 : 
                        System.out.println("Enter integer element to insert");
                        list.insertAtEnd( scan.nextInt() );                     
                        break;                         
                    case 3 : 
                        System.out.println("Enter integer element to insert");
                        int num = scan.nextInt() ;
                        System.out.println("Enter position");
                        int pos = scan.nextInt() ;
                        if (pos < 1 || pos > list.getSize() )
                            System.out.println("Invalid position\n");
                        else
                            list.insertAtPos(num, pos);
                        break;                                          
                    case 4 : 
                        System.out.println("Enter position");
                        int p = scan.nextInt() ;
                        if (p < 1 || p > list.getSize() )
                            System.out.println("Invalid position\n");
                        else
                            list.deleteAtPos(p);
                        break;     
                    case 5 : 
                        System.out.println("Empty status = "+ list.isEmpty());
                        break;            
                    case 6 : 
                        System.out.println("Size = "+ list.getSize() +" \n");
                        break;                         
                    default : 
                        System.out.println("Wrong Entry \n ");
                        break;   
                    }    
                    /*  Display List  */ 
                    list.display();
                    System.out.println("\nDo you want to continue (Type y or n) \n");
                    ch = scan.next().charAt(0);    

                } while (ch == 'Y'|| ch == 'y');               
            }
        }

其中每个节点包含一个字符串和整数的一个字符

因此,您希望每个节点具有两种数据类型...

您可以创建支持课程Pair

public class Pair<T, U> {
    private T t;
    private U u;

    // constructors, getters, setters, equals and hashcode ...

    public static <T, U> Pair<T, U> of(final T t, final U u) {
        return new Pair<>(t, u);
    }
}

然后有

final List<Pair<String, Integer>> list = new LinkedList<>();
list.add(Pair.of("string", 4));
// ...


Pair<String, Integer> pair = list.get(9);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM