#开始

  今天遇到了一个很神奇的事情

  也即是我在用ArrayList的add方法循环加入对象的时候 发现添加的元素全部都是一样的

  定位错误定位了一个下午.... 错误位置就是哪一个位置 但是就是不知道为啥错了

  

while(rs.next())
{ GroupInfo gi = new GroupInfo(rs.getString("GroupID"),rs.getString("date"));
ce.GroupList.add(gi);
ce.CQ.logInfo("connectDB","获取QQ群: "+ce.GroupList.get(i++).GroupID);
}

  百度了类似的问题  https://bbs.csdn.net/topics/340178073

  上面链接里面的问题是因为所有引用全部指向同一个对象  

  但是我这里确实是用用了new开辟了内存啊

#解决

  直到看到这个老哥的博客 https://blog.csdn.net/zouhaipeng/article/details/53160124

  突然醒悟了

  

public class GroupInfo
{
public static String GroupID;
public static String date; public GroupInfo(String fromGroup,String date2)
{
GroupID = fromGroup;
date = date2;
}
}

  看到那个static了么 害惨我了 QAQ

  改成下面这样就好了

public class GroupInfo
{
public String GroupID;
public String date; public GroupInfo(String fromGroup,String date2)
{
GroupID = fromGroup;
date = date2;
}
}

#后记

  这是我粗心的后果...对基础还是不够了解 不够扎实

  希望能帮到大家

java ArrayList添加元素全部一样的更多相关文章

  1. jdk 1.8下 java ArrayList 添加元素解析

    转载请注明http://www.cnblogs.com/majianming/p/8006452.html 有人问我,java ArrayList底层是怎么实现的?我就回答数组,他再问我,那它是怎么实 ...

  2. java:Conllection中的List,ArrayList添加元素,删除元素,输出元素

    java:Conllection中的List,ArrayList添加元素,删除元素,输出元素 //为list接口实例化 List<String> addlist = new ArrayLi ...

  3. 浅析 java ArrayList

    浅析 java ArrayList 简介 容器是java提供的一些列的数据结构,也可以叫语法糖.容器就是用来装在其他类型数据的数据结构. ArrayList是数组列表所以他继承了数组的优缺点.同时他也 ...

  4. Java ArrayList源码剖析

    转自: Java ArrayList源码剖析 总体介绍 ArrayList实现了List接口,是顺序容器,即元素存放的数据与放进去的顺序相同,允许放入null元素,底层通过数组实现.除该类未实现同步外 ...

  5. Java ArrayList 源代码分析

    Java ArrayList 之前曾经参考 数据结构与算法这本书写过ArrayList的demo,本来以为实现起来都差不多,今天抽空看了下jdk中的ArrayList的实现,差距还是很大啊 首先看一下 ...

  6. Java——ArrayList底层源码分析

    1.简介 ArrayList 是最常用的 List 实现类,内部是通过数组实现的,它允许对元素进行快速随机访问.数组的缺点是每个元素之间不能有间隔, 当数组大小不满足时需要增加存储能力,就要将已经有数 ...

  7. Java ArrayList【笔记】

    Java ArrayList[笔记] ArrayList ArrayList基本结构 ArrayList 整体架构比较简单,就是一个数组结构 源码中的基本概念 index 表示数组的下标,从 0 开始 ...

  8. Java ArrayList、Vector和LinkedList等的差别与用法(转)

    Java ArrayList.Vector和LinkedList等的差别与用法(转) ArrayList 和Vector是采取数组体式格式存储数据,此数组元素数大于实际存储的数据以便增长和插入元素,都 ...

  9. Java ArrayList中对象的排序 (Comparable VS Comparator)

    我们通常使用Collections.sort()方法来对一个简单的数据列表排序.但是当ArrayList是由自定义对象组成的,就需要使用comparable或者comparator接口了.在使用这两者 ...

随机推荐

  1. vs2015编译各种库

    1.编译libcurl https://www.jianshu.com/p/f82d3d18da93

  2. c++踩坑大法好 宏定义 头文件

    1,c++宏定义是干啥的?防止重复引用,如何防止重复引用? //a.h //声明一个类,和其他声明 #include <iostream> class A{ public: static ...

  3. kali2018.4 下载地址

    https://www.linuxidc.com/Linux/2018-10/155088.htm

  4. html集合

    <!DOCTYPE> //声明文档类型 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> ...

  5. NOIP做题练习(day5)

    A - 中位数图 题面 题解 先找出题意中的\(b\)所在的位置. 再以这个位置为中心,向右\(for\)一遍有多少个大于/小于该数的数 大于就\(++cs\) 小于就\(--cs\). 因为这个数是 ...

  6. LED Magic Light - How Does The LED Light Change Color?

    The    LED Magic Light    states that the color-changing LED is not an LED in the package, but three ...

  7. Oracle使用记录

    1.连接数据库的方式 sqlplus system/system@127.0.0.1:1521/orcl #远程用户名密码连接 sqlplus dbsnmp/oracle; #本地用户名密码连接 sq ...

  8. JavaScript.Array.some() 方法用法

    定义和用法:some() 方法用于检测数组中的元素是否满足指定条件(函数提供). some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检 ...

  9. 关于Ajax请求的JS封装函数

    每次连接ajax都要重复写很多代码,所以写了一个JS封装函数,如下: 再来解释一下其中obj对象的参数形式: obj={ 'type':提交方式,    get/post 'url' : 提交地址, ...

  10. thinkphp的where 之 or的使用

    需要生成 SELECT * FROM `goods` WHERE ( `goodstype_id` = 2 or `goodstype_id` = 3 ) $where['goodstype_id'] ...