Java的ArrayList和C++的vector很类似,都是很基本的线性数据结构.但是他们的表现却不同. 在工作中碰到一个问题就是,搞不清楚到底传进去的是一个新对象,还是当前对象的引用! 经过实战分析: 在Java的ArrayList.add(e)中,传入的是引用,因此当你传入e以后,再改变e的成员,则ArrayList里的e也同样会改变,因为本身e和ArrayList中的e就是同一个东西. 而C++的vector.push_back(e)则会调用拷贝构造函数,因此当你传入e以后,再改变e的成…
ArrayList添加 public boolean add(E e) { ensureCapacityInternal(size + 1); // Increments modCount!! elementData[size++] = e; return true; } elementData[size++] = e :e为传入的需要存储的元素,elementData 是ArrayList中存放元素的数组缓存区,当ArrayList初始化时长度为0,当存放第一个元素时,长度为10 /** *…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>的构造方法和5个修改操作进行介绍,主要内容包括: 1.ArrayList构造方法介绍 2.ArrayList常用5个修改操作介绍 参考内容: 1.JDK源码(1.7) ----------------------------------------------------…
Simple add() method is used for adding an element at the end of the list however there is another variant of add method which is used for adding an element to the specified index. public void add(int index, Object element) This method adds the elemen…
package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class ArrayListDemo {    public static void main(String args[]){        List<String> list = new ArrayList<String>();        list.add("luo…
我的车就差一个轮子啦,造好轮子,我就飞上天与太阳肩并肩啦,想想都激动.什么你要自己造轮子,是不是傻,商店里不都是别人造好的吗,又好又方便,只需一点money,你没有money,那你只能做个安静的美男子啦.幸运的是编程世界中的轮子不需要money,今天就来看看如何调用库中的轮子. 今天的内容: 一.修改bug  这篇博客是接着上篇的,没有看的,请点击此出查看:上一篇随笔 现在揭示那个程序的最大的bug:…
import java.io.*; import java.util.ArrayList; public class Emexe { public static void main(String[] args) throws IOException { EmpManage em=new EmpManage(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); while(true){ System.o…
  需求:去除集合中自定义对象的重复值(对象的成员变量值都相同 注意: 我们按照和字符串一样的操作,发现出问题了. 为什么呢? 我们必须思考哪里会出问题? 通过简单的分析,我们知道问题出现在了判断上. 而这个判断功能是集合自己提供的,所以我们如果想很清楚的知道它是如何判断的,就应该去看源码. contains()方法的底层依赖的是equals()方法. 而我们的学生类中没有equals()方法,这个时候,默认使用的是它父亲Object的equals()方法 Object()的equals()默认…
需求: ArrayList去除集合中字符串的重复值(去掉相同的字符串) 分析: 第一种做法:创建一个新的空集合: A:创建1个具有相同字符串的集合 B:创建1个空的集合 C:遍历第一个集合里面的元素 D:把遍历的元素一个个放进去第二个集合中,但有条件 a:若第二个集合中没有这个元素,则添加进去 b:若有这个元素,则不添加 E:遍历第二个集合,输出 package cn_ArrayList; import java.util.ArrayList; import java.util.Iterator…
java.util.ArrayList就是传说中的动态数组. 继承了关系,有此可看出ArrayList与list的collection的关系 public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable 分析期特性 具有实例化性质,从实现了serializable就可以看出来 private stati…
大致区别:  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构. 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针. 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据. ArrayList和LinkedList是两个集合类,用于存储一系列的对象引用(references).例如我们可以用ArrayList来存储一系列的String…
转自:http://blog.csdn.net/wuchuanpingstone/article/details/6678653 个人建议:以下这篇文章,是从例子说明的方式,解释ArrayList.LinkedList,但是最好的方式还是看源代码.其实ArrayList就是一个动态数组,LinkedList是一个链表.  1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.     2.对于随机访问get和set,ArrayList优于LinkedLis…
JAVA中ArrayList用法 2011-07-20 15:02:03|  分类: 计算机专业 |  标签:java  arraylist用法  |举报|字号 订阅     Java学习过程中做题时,用到ArrayList,在网上寻找到的学习资料.   摘自:     http://www.cnblogs.com/skylaugh/archive/2006/09/15/505346.html System.Collections.ArrayList类是一个特殊的数组.通过添加和删除元素,就可以…
1.ArrayList类     1)ArrayList类概述         · 底层数据结构是数组,查询快,增删慢         · 线程不安全,效率高     2)ArrayList案例         · 存储字符串并遍历         · 存储自定义对象并遍历   2.Vecor类     1)Vector类概述        · 底层数据结构是数组,查询快,增删慢        · 线程安全,效率低     2)Vector类特有功能         · public void…
package dataStructure; import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.io.*; class node { int to, dist; node(int t, int d) { to = t; dist = d; } } public class Graph { public stat…
/** * * @author Administrator * 功能:Java集合类ArrayList的使用 */ package com.test; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Test2 { public static void main(String[] args) throws Exception{ // TODO Aut…
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和IList接口 灵活的设置数组的大小 2.如何使用ArrayList 最简单的例子: ArrayList List = new ArrayList(); for( int i=0;i <10;i++ ) //给数组增加10个Int元素 List.Add(i); //..程序做一些处理 List.Remove…
一般大家都知道ArrayList和LinkedList的大致差别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构.  2.对于随机訪问get和set.ArrayList认为优于LinkedList,由于LinkedList要移动指针. 3.对于新增和删除操作add和remove,LinedList比較占优势,由于ArrayList要移动数据. 4.ArrayList:随机訪问,顺序存储.LinkedList:顺序訪问,随机存储: ArrayList…
1. ArrayList概述: ArrayList 是一个数组队列.相当于 动态数组. 与Java中的数组相比.它的容量能动态增长.它继承于AbstractList.实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口. ArrayList 继承了AbstractList,实现了List.它是一个数组队列,提供了相关的加入.删除.改动.遍历等功能. ArrayList 实现了RandmoAccess接口,即提供了随机訪问功能.Ran…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>进行整体性介绍,主要内容包括: 1. ArrayList概述 2. ArrayList中的属性.构造方法.常用方法介绍 3. ArrayList遍历 参考内容: 1.JDK源码(1.7)-------------------------------------------…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>的6个常用查询操作进行介绍,主要内容包括: 1.ArrayList查询操作 参考内容: 1.JDK源码(1.7) --------------------------------------------------------------------  1. ArrayL…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>的4个批量操作进行介绍,主要内容包括: 1.ArrayList的批量操作 参考内容: 1.JDK源码(1.7) --------------------------------------------------------------------  1. ArrayLi…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>中的Iterator和List操作进行介绍,主要内容包括: 1.ArrayList的Iterator和ListIterator操作 2.ArrayList的subList操作 参考内容: 1.JDK源码(1.7) -----------------------------…
写在前面的话:读书破万卷,编码如有神--------------------------------------------------------------------下文主要对java.util.ArrayList<E>中的其他操作和数组操作进行介绍,主要内容包括: 1.其他操作 2.数组操作 参考内容: 1.JDK源码(1.7) --------------------------------------------------------------------  1.ArrayLi…
// One practice package Collection; import java.util.ArrayList; import java.util.Iterator; // 去除 ArrayList 集合中的重复元素 public class ArrayListTest { public static void sop(Object obj) { System.out.println(obj); } public static void main(String[] args) {…
众所周知,冒泡排序法在一般数组中就3步, if(a<b){ temp=a; a=b; b=temp; } 然而,在集合中就不是简单的交换一下了,因为交换之后,必须保证新的值被重新设置到集合中去.那么变难了吗?实际上更简单了: if(a<b){ workerlist.get(j).setSc(b); workerlist.get(j+1).setSc(a); } 原理还是交换,不过不需要媒介temple 了. 具体代码见下: *********************工人类***********…
一.java.util.ArrayList 1.1 ArrayList 继承结构 ArrayList实现了RandomAccess,可以随机访问(其实就是通过数组下标访问):实现了Cloneable,可以拷贝(通过System.arraycopy方法实现):实现了Serializable,可以进行序列化,能被序列化传输. ArrayList非线程安全. 1.2 ArrayList 属性 private static final long serialVersionUID = 8683452581…
package com.tn.collect; import java.util.ArrayList; import java.util.Iterator; class Product{ public Product() { super(); // TODO Auto-generated constructor stub } public Product(int id, String name, int price) { // TODO Auto-generated constructor st…
Java中ArrayList与LinkedList的区别 一般大家都知道ArrayList和LinkedList的区别: 1. ArrayList的实现是基于数组,LinkedList的实现是基于双向链表.       2. 对于随机访问,ArrayList优于LinkedList 3. 对于插入和删除操作,LinkedList优于ArrayList 4. LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向…
尝试在一个空的对象引用上引用boolean java.util.List.add()这个方法: 错误例子: private ArrayList<String> classList; classList.add("2014211501"); 相当于classList为null.   正确实例: private ArrayList<String> classList=new ArrayList<String>(); classList.add("…