当前位置: 首页 > 知识库问答 >
问题:

如何在java中链接两个链表的元素?

冀啸
2023-03-14

这是我的一个货车租赁数据库的起始代码。

List<String> manual = new LinkedList<>();
List<String> automatic = new LinkedList<>();
List<String> location = new LinkedList<>();

manual.add("Queen");
manual.add("Purple");
manual.add("Hendrix");

automatic.add("Wicked");
automatic.add("Zeppelin");
automatic.add("Floyd");
automatic.add("Ramones");
automatic.add("Nirvana");

location.add("CBD");
location.add("Penrith");
location.add("Ceremorne");
location.add("Sutherland");

如何将汽车链接到该位置。例如,CBD的位置有Wicked,Zepplin和Floyd,Penrith有Queen。因此,如果命令行参数具有“打印CBD”,那么它必须显示CBD中可用的货车。

任何帮助将不胜感激。

共有3个答案

包子航
2023-03-14

好的,这就是代码。我们只使用您所需的链表。(链表会跟踪输入顺序,因此我们也使用它)由于它是一对多关系,我们应该有某种“外键”,这样我们就可以看到相关的对象。对于您添加的每辆车,无论是手动还是自动,您都应该为位置添加一个键,如下所示,例如rels[0] = 3;意味着您的第一辆车将与位置列表的第 4 个对象相关。这是在代码中实现的 - 看一看。

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class TestMain {

    public static void main(String[] args) {

        List<String> manual = new LinkedList<String>();
        List<String> automatic = new LinkedList<String>();
        List<String> location = new LinkedList<String>();
        int[] rels = new int[8];

        //cars with relations
        rels[0] = 1;
        manual.add("Queen");
        rels[1] = 1;
        manual.add("Purple");
        rels[2] = 1;
        manual.add("Hendrix");
        rels[3] = 1;
        automatic.add("Wicked");
        rels[4] = 0;
        automatic.add("Zeppelin");
        rels[5] = 0;
        automatic.add("Floyd");
        rels[6] = 1;
        automatic.add("Ramones");
        rels[7] = 2;
        automatic.add("Nirvana");

        //key-0
        location.add("CBD");
        //key-1
        location.add("Penrith");
        //key-2
        location.add("Ceremorne");
        //key-3
        location.add("Sutherland");

        //here is the value that you have from your input args[] for example
        String desiredLocation = "CBD";

        int index = getLocationIndex(location, desiredLocation);
        //if desired location not found we will print nothing
        if(index==-1)return;

        List mergedCars = new LinkedList<String>();
        mergedCars.addAll(manual);
        mergedCars.addAll(automatic);

        for (int i = 0; i < rels.length; i++) {
            if(index == rels[i])
            {
                System.out.println(mergedCars.get(i));
            }
        }

    }

    private static int getLocationIndex(List<String> location, String desiredLocation) {
        int counter=0;
        for (Iterator iterator = location.iterator(); iterator.hasNext();) {
            String temp = (String) iterator.next();
            if(temp.equals(desiredLocation))
            {
                return counter;
            }
            counter++;
        }
        return -1;
    }
}
吕霖
2023-03-14

我认为您最好使用本文中解释的方法。我相信这将是一个更加明确的实施。

我希望这有所帮助。

岳俊晖
2023-03-14

这几乎不是一个数据库。它们只是三个独立的数据块。使用一些面向对象的设计技术来创建类,例如称为Van的类。例如,它不是java代码,只是一个例子。

Class Van {
    string name;
    VanType type; // e.x, Enum {auto, manual}
    Location location; // another class
}
 类似资料:
  • 问题内容: 我有两个完成。我想做以下情形:如果第一个Completable到达onComplete,则继续第二个Completable。最终结果将是第二完成的onComplete。 当我有单个 getUserIdAlreadySavedInDevice() 和Completable login() 时,这就是我的方法: 问题答案: 您正在寻找运营商。 返回一个Completable,它首先运行此C

  • 我有两个完整的。我想做以下场景:如果第一个Completable到达onComplete,继续第二个Completable。最终结果将是完成第二个可完成项。 这就是我在使用单getUserIdAlreadySavedInDevice()和Compltable login()时的做法:

  • 21. Merge Two Sorted Lists 问题 Merge two sorted linked lists and return it as a new list. 思路 这个题目很简单也有几个可以考虑的思路,一个是比较直接的方式,重新构造链表,一种是利用递归 思路1 :用新的链表 这里用了一个新的节点了保存结果的链表,这里为了方便链表的扩充,增加一个临时的节点变量(否则每次加入都要遍

  • 问题内容: 我正在尝试用Java实现一个简单的HashTable,该哈希表使用链接表来解决冲突,这在C语言中很容易实现,但是我不知道如何在Java中实现它,因为您不能使用指针。 。 首先,我知道这些结构已经在Java中实现,我不打算使用它,只是在这里进行培训… 所以我创建了一个元素,它是一个字符串和一个指向下一个元素的指针: 当然,我的HashTable有一个Element数组来存储数据: 这是我

  • 我的代码中有错误。错误是:错误:类SwapNodes是公共的,应该在名为SwapNodes的文件中声明。java公共类SwapNodes{ ^Main.java:104:错误:内部类SwapNodes中的静态声明非法。Main公共静态void Main(String[]args){ ^modifier'static'仅允许在常量变量声明中使用。我的程序如下所示:

  • 我正在尝试将我的两个Android布局连接起来,并完成这个过程。 MainActivity.java 记录活动。Java语言 content_main.xml recording.xml AndroidManifest。xml 堆栈跟踪04-22 14:24:09.415 4470-4470/andler.java:102E/AndroidRuntime: FATAL EXCEPTION: mai