Java中将一个TreeMap添加到另一个TreeMap中怎么做?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中将一个TreeMap添加到另一个TreeMap中怎么做?相关的知识,希望对你有一定的参考价值。
你好,很高兴回答你的问题。TreeMap有一个方法是putAll,可以实现你的需求。
比如两个TreeMap,a和b。
a.putAll(b)就是讲b添加到a中。
如果有帮助到你,请点击采纳。 参考技术A 您好,对于你的遇到的问题,我很高兴能为你提供帮助,我之前也遇到过哟,以下是我的个人看法,希望能帮助到你,若有错误,还望见谅!。Map里面再放一个Map,以名称做为一个key,然后把其它属性放到另外一个map里保存就行了。
TreeMap<String,Map<String,Object>>定义 这样的非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
在 C 编程中将链表添加到另一个链表
【中文标题】在 C 编程中将链表添加到另一个链表【英文标题】:Adding a linked list to another linked list in C programming 【发布时间】:2022-01-21 11:44:30 【问题描述】:我是初学者尝试使用 c 将链表添加到另一个链表。问题是程序正在进入无限循环,我不知道为什么。 这是下面的c代码
typedef struct bookInfo
int code;
struct bookInfo *next;
bookInfo;
typedef struct subscriber
int code;
struct bookInfo *books;
struct subscriber *next;
struct subscriber *prec;
subscriber;
typedef bookInfo *Book;
typedef subscriber *Subscriber;
typedef Subscriber *SubscriberList;
void newBook(Book *bk, int val)
bookInfo *new_node = malloc(sizeof(bookInfo));
bookInfo *last = *bk;
new_node->code = val;
new_node->next = NULL;
if (*bk == NULL)
*bk = new_node;
else
while (last->next != NULL)
last = last->next;
last->next = new_node;
Subscriber Add_book(Subscriber S, Book Bk)
bookInfo *newNode = malloc(sizeof(bookInfo));
bookInfo *tmp;
newNode->next = NULL;
newNode->code = Bk->code;
if (S == NULL)
printf("\nl'abonnee est nulle");
else
if (S->books == NULL)
S->books = newNode;
else
tmp = S->books;
while (tmp != NULL)
tmp = tmp->next;
tmp->next = newNode;
printf("\nl'ajout du livre a ete effectue");
;
return S;
;
希望你们能帮助我,谢谢。我不知道是函数 newBook 中的问题还是什么,这是我的主要函数
int main()
book_ref, sub_ref = NULL;
newSubscriber(&sub_ref);
bookInfo b1 = 20,NULL;
Add_book(sub_ref, &b1);
printf("\n%d : %d", sub_ref->code, sub_ref->books->code);
【问题讨论】:
你应该学习如何使用调试器,因为它是有价值的。调试器是您自己解决此类问题的绝佳工具。 Wassim Ben Fatma,很好奇,为什么使用Subscriber S
而不是subscriber * S
?
据我所知,您需要一个指针才能更改全局变量。但我不知道我的工作是否正确。我真的是 C 编程的初学者。
我知道这似乎是一个深奥的抱怨,但错误消息确实属于 stderr。 fprintf(stderr, "...");
。永远不要将错误消息写入标准输出。
【参考方案1】:
在您的代码中,
while (tmp != NULL) tmp = tmp->next;
当此循环结束时,tmp 为 NULL,因此下一行将尝试访问空指针。
你应该更正它,while(tmp->next != NULL)
【讨论】:
我修好了,但问题仍然存在 对于给定的代码段,我们只能说这么多。共享代码的其他相关部分。你为什么要返回 S ?这个 Add_book() 如何在您的其余代码中使用。【参考方案2】:为了消除无限循环,我所要做的就是将订阅者结构中的书籍指针定义为NULL
void newBook(Book *bk, int val)
bookInfo *new_node = malloc(sizeof(bookInfo));
bookInfo *last = *bk;
new_node->code = val;
new_node->next = NULL;
new_node->books = NULL;
if (*bk == NULL)
*bk = new_node;
else
while (last->next != NULL)
last = last->next;
last->next = new_node;
Subscriber Add_book(Subscriber S, Book Bk)
bookInfo *newNode = malloc(sizeof(bookInfo));
bookInfo *tmp;
newNode->next = NULL;
newNode->code = Bk->code;
newNode->books = NULL;
if (S == NULL)
printf("\nl'abonnee est nulle");
else
if (S->books == NULL)
S->books = newNode;
else
tmp = S->books;
while (tmp != NULL)
tmp = tmp->next;
tmp->next = newNode;
printf("\nl'ajout du livre a ete effectue");
;
return S;
;
一切正常。
【讨论】:
你的bookInfo
结构没有名为books
的成员,不清楚你在做什么,newNode->books
以上是关于Java中将一个TreeMap添加到另一个TreeMap中怎么做?的主要内容,如果未能解决你的问题,请参考以下文章
如何在javascript中将一个数组中的值添加到另一个数组