LinkedList的问题,用过的进来~~~
 LinkedList list=new LinkedList<>();
           list.add("A"); 
            list.add("B"); 
            list.add(1, "666"); 

            System.out.println(list);

输出
[A, 666, B]

但是 ,把a,b换成map

Map<String, String> map=new HashMap<>();
        LinkedList<Map<String, String>> list=new LinkedList<>();

         map.put("title", "1");
         list.add(map);
         map.put("title", "2");
         list.add(map);
         map.put("title", "666");
         list.add(1, map);

            System.out.println(list); 

运行结果
[{title=666}, {title=666}, {title=666}]
并不是
1,666,2

为什么?

2个回答

这个问题和LinkedList完全没关系。
HashMap的key是具有唯一性的,你三次put的时候key一样value是会被覆盖,所以add到list里的其实是同一个map

q975583865
张盼盼永远的跟班 回复DontSpeaking: 好的,谢谢
2 年多之前 回复
DontSpeaking
DontSpeaking 回复神鸟自然: 在list中存储的是数据的地址,而不是值。在map值发生变化后,list中的数据也就变化了
2 年多之前 回复
q975583865
张盼盼永远的跟班 测试你说的是对的,但put一个就add一个,然后再put,覆盖再add,貌似也没错啊
2 年多之前 回复
Map<String, String> map=new HashMap<>();
        Map<String, String> map2=new HashMap<>();
        Map<String, String> map3=new HashMap<>();
        LinkedList<Map<String, String>> list=new LinkedList<>();

         map.put("title", "1");
         list.add(map);
         map2.put("title", "2");
         list.add(map2);
         map3.put("title", "666");
         list.add(1, map3);

            System.out.println(list); 

你是对的,麻烦大佬科普一下

q975583865
张盼盼永远的跟班 回复新手不会: 不能重复=,- 朋友你试试看会报异常吗?不报异常就可以重复,问题不在这里~~
2 年多之前 回复
qq_31515997
hello.. 1,同一个对象(map) key 是不能重复的,你上面的是用的同一个map,2,你下面的map2,map3,map 这是三个不同的对象
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

有关Java LinkedList问题

``` LinkedList<String> list = new LinkedList<String>(); list.addLast("2"); list.add("3"); list.addFirst("1"); System.err.println(list.getFirst()); System.err.println(list.getLast()); 1 3 ``` 为什么结果是1、3呢? 不是1、2呢? 那还要addLast有什么用呢?

linkedlist在实际开发中使用较少的问题

为什么在实际开发中linkedlist 用的少 , 而 Arraylist 用的多?

LinkedList的使用!

...... LinkedList link=new LinkedList(); xi1 x1=new xi1("刘德华",85); xi1 x2=new xi1("张学友",100); link.add(x1); link.add(x2); //link.set(0, 95); 怎么把85改成95?

java 集合ArrayList 和 linkedlist问题

是不是后台从数据库获取数据用ArrayList 从后台保存数据到数据库用linkedlist啊

LinkedList类中的三个属性序列化问题

在看linkedList源码的时候,发现LinkedList实现了Serializable接口,但是它所有的(共三个)属性,size,first,last都加了transient 关键字. ![图片说明](https://img-ask.csdn.net/upload/201902/26/1551146515_136172.png) 于是我就写了一个序列化反序列化代码来序列化linkedlist试一下 结果发现反序列化后的linkedlist对应属性仍有值 ![图片说明](https://img-ask.csdn.net/upload/201902/26/1551146642_152346.png) 我想问一下大神们transient 关键字为什么在这里没有作用,求解

关于List<String>和LinkedList<String>的问题

public class test { public static void main(String[] args) { List<String> l=new LinkedList<String>(); //(1) String s=null; l.add("hello"); l.add("world"); l.addFirst("i am 008"); //此行出错!编译不通过,提示没有addFirst方法 ListIterator r=l.listIterator(); while(r.hasNext()){ s=(String)r.next(); System.out.println(s); } } } LinkedList有addFirst方法,但是编译提示找不到,但是把(1)改成LinkedList<String> l=new LinkedList<String>(); 就不会出错,这是为什么呢?我觉得List<String>是基类,LinkedList是子类(这里有可能不是继承关系),这样根据java多态的话,l应该是LinkedList,就应该有addFirst方法啊?期待赐教

请问怎么使用LinkedList?

将对象添加到LinkedList中,如何输出添加的对象的个数?

java中linkedlist的clone返回此 LinkedList 的浅表副本。

java中linkedlist的clone返回此 LinkedList 的浅表副本。(这些元素本身没有复制),求个实例

在 Java 中什么时候使用 LinkedList 而不是 ArrayList?

<div class="post-text" itemprop="text"> <p>I've always been one to simply use:</p> <pre><code>List&lt;String&gt; names = new ArrayList&lt;&gt;(); </code></pre> <p>I use the interface as the type name for <em>portability</em>, so that when I ask questions such as these I can rework my code. </p> <p>When should <a href="https://docs.oracle.com/javase/9/docs/api/java/util/LinkedList.html" rel="noreferrer"><code>LinkedList</code></a> be used over <a href="https://docs.oracle.com/javase/9/docs/api/java/util/ArrayList.html" rel="noreferrer"><code>ArrayList</code></a> and vice-versa?</p> </div> <p>转载于:https://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist-in-java</p>

同步LinkedList时报错

代码: private List<String> requests = Collections.synchronizedList(new LinkedList<String>()); 和 private List<String> requests = Collections.synchronizedList(new LinkedList<String>()); 运行报错: FATAL EXCEPTION: main java.lang.IllegalStateException: Could not execute method of the activity at android.view.View$1.onClick(View.java:2144) at android.view.View.performClick(View.java:2485) at android.view.View$PerformClick.run(View.java:9080) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:123) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at android.view.View$1.onClick(View.java:2139) ... 11 more Caused by: java.lang.ClassCastException: java.util.Collections$SynchronizedList at com.countryst.nabard.turnbased.client.networking.ClientNetworking.login(ClientNetworking.java:72) at com.countryst.nabard.turnbased.client.MainActivity.loginToServer(MainActivity.java:87) at com.countryst.nabard.turnbased.client.MainActivity.onButtonClicked(MainActivity.java:217) ... 14 more

LinkedList如何实现线程安全

LinkedList如何实现线程安全,而且我需要getLast(),remove Last(),addFirst()方法

java 集合 linkedList的问题 望大神解惑

hashmap和 arraylist都可以设置初始化大小 比如List arrayList = new arrayList(100); linkedlist不可以设置初始化大小么

为什么java.util里的Stack不用LinkedList实现

thinking in java用LinkedList实现了stack,而且说比java.util 里自带的stack更好,那么为什么java.util里的stack不用LinkedList实现呢?

linkedlist toarray()和toarray(T[] a)

linkedlist toarray()和toarray(T[] a)的用法和区别,求人案例说明下 LinkedList<Shop1> link=new LinkedList<Shop1>(); Shop1 one=new Shop1(001,"苹果",3.2); Shop1 two=new Shop1(002,"火龙果",3.88); Shop1 three=new Shop1(003,"草莓",1.2); Shop1 three1=new Shop1(003,"草莓",1.2); Shop1 four=new Shop1(003,"小草",1.4); String a=Arrays.toString(link.toArray()); System.out.println(a); Object[] x=link.toArray(new Object[5]); for(int i=0;i<link.size();i++){ System.out.println(x[i]); } toarray()和toarray(T[] a) 输出的是乱码 怎么样才能转换输出

array,arrayList,linkedList,vector 用法

我想了解array,arrayList,linkedList,vector的用法。请问这四个有什么分别?什么时候该用array,什么时候该用arrayList,什么时候该用linkedList,什么时候该用vector呢?麻烦解释一下。谢谢!

分别创建一个ArrayList和LinkedList,用Dog类的多个实例来填充此容器。

9. 分别创建一个ArrayList和LinkedList,用Dog类的多个实例来填充此容器。用普通的Iterator打印此List,然后用ListIterator,按隔一个位置插入一个对象的方式,把两个列表合并起来。然后从List的末尾开始向前移动,并且执行打印操作。

如何在LinkedList对象中加入两种比较器?

用LinkedList对象list存储扑克牌并排序,写了一个牌值比较器RankComparator和 一个花色比较器SuitComparator, 还有写了枚举的CardRank和CardSuit,并对不同的 花色和牌值都赋了不同的值,再用Collection.sort(list,new RankComparator())进行牌值的排序,现在我想再加一个花色的排序(就是list中既对牌值排序,又对花色排序),请问该怎么写呢?谢谢各位大虾。

java 使用LinkedList 实现多项式的相加相乘

1定义类Term这个类将定义多项式的项。它应该有两个属性,系数和项的指数。 2.要使用LinkedList 3.使用toString 输出 4.使用scanner 输入输出

[求助]LinkedList的实现及应用,创建两个链表,并输出其中一个,一直报错with return value 3221225477

#define LINKEDLIST_CLASS #include <iostream> #include <cstdlib> using namespace std; #ifndef NULL const int NULL = 0; #endif // NULL template <class T> class Node { private: Node<T> *next; //指向后继节点的指针 public: T data; //数据域 Node(const T& item, Node<T>* ptrnext = NULL); void InsertAfter(Node<T> *p); Node<T> *DeleteAfter(void); Node<T> *NextNode(void) const; }; template <class T> Node<T>::Node(const T& item, Node<T>* ptrnext) :data(item), next(ptrnext){ } template <class T> Node<T> *Node<T>::NextNode(void) const{ return next; } template <class T> void Node<T>::InsertAfter(Node<T> *p){ p->next = next; //p节点指针域指向当前节点的后继节点 next = p; //当前节点的指针域指向p } template <class T> Node<T> *Node<T>::DeleteAfter(void){ Node<T> *tempPtr = next; //将欲删除的节点地址存储到tempPtr中 if (next == NULL) //如果当前节点没有后继节点,则返回NULL return NULL; next = tempPtr->next; //使当前节点的指针域指向tempPtr的后继节点 return tempPtr; //返回被删除的节点的地址 } template <class T> class LinkedList { private: Node<T> *front, *rear; Node<T> *prevPtr, *currPtr; int size; int position; Node<T> *GetNode(const T& item, Node<T> *ptrNext = NULL);//f public: LinkedList(void);//f LinkedList(const LinkedList<T>& L); //拷贝构造函数f void Reset(int pos = 0); void Next(void); //使prevPtr和currPtr移动到下一个节点f int EndOfList(void) const;//f void InsertRear(const T& item); //在表尾添加f T& Data(void);//f }; template <class T> LinkedList<T>::LinkedList(void) : front(NULL), rear(NULL),prevPtr(NULL), currPtr(NULL), size(0), position(-1){ } template <class T> LinkedList<T>::LinkedList(const LinkedList<T>& L){ front = rear = NULL; prevPtr = currPtr = NULL; size = 0; position = -1; CopyList(L); } template <class T> Node<T> *LinkedList<T>::GetNode(const T& item, Node<T>* ptrNext){ Node<T> *p; p = new Node<T>(item, ptrNext); if (p == NULL) { cout << "Memory allocation failure!\n"; exit(1); } return p; } //请在此处补充LinkedList类模板的部分实现代码 //____qcodep____ template <class T> void LinkedList<T>::InsertRear(const T& item){ Node<T> *p = new Node<T>(item, NULL); if(front == NULL) front = p; else rear->InsertAfter(p); rear = p; } template <class T> int LinkedList<T>::EndOfList(void) const{ if(currPtr->NextNode() == NULL) return 0; else return 1; } template <class T> void LinkedList<T>::Next(void){ position++; prevPtr = currPtr; if(currPtr != NULL) currPtr = currPtr->NextNode(); } template <class T> T& LinkedList<T>::Data(void){ currPtr = front; return currPtr->data; } int main() { LinkedList<int> A, B; //初始化A.B二个链表1 //输入加入链表A的五个整数 int i, item; for (i = 0; i<5; i++) { cin >> item; A.InsertRear(item); } //输入加入链表B的五个整数:"; for (i = 0; i<5; i++) { cin >> item; B.InsertRear(item); } while (!A.EndOfList()) { cout << A.Data() << " "; A.Next(); } cout << endl; }

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 按行txt c#怎么扫条形码 c#打包html c# 实现刷新数据 c# 两个自定义控件重叠 c#浮点类型计算 c#.net 中文乱码 c# 时间排序 c# 必备书籍 c#异步网络通信
立即提问