Java动态数组

呃,知道长度大小是可变的,动态的,但具体点是什么?就是一个可以随意改变大小的数组?
求涵义及动态数组简单的使用代码
……另外,ArrayList<E>是啥意思?E又是什么?

ArrayList就是一个可以变成的数组(你可以这样理解)
ArrayList<E> 其中E是一个泛型,例如,ArrayList<String> array=new ArrayList<String>();则表示新建一个存放String的可变长数组。
ArrayList<Object> array1=new ArrayList<Object>()则为一个存放Object的可变长数组。
记住,这种样式的E,有的用T表示,它的意思为泛型。泛型是什么就不介绍了。
而且,E只能是一个类的类名,如果你是变为ArrayList<int>则是错误的,要用ArrayList<Integer>才可以
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-01-27
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList<E>,其中<E>是表示泛形,即这个列表只能存放<E>的实例,如:ArrayList <String> list = new ArrayList<String>();那这个list只能存放String。

一般情况,数组定义后就不能改变大小。但很多场景又需要可以改变大小的数组。
他虽然是动态数据,在底层其实还是数组,只不过在数组快要存放满的时候,自动创建一个更大的数组。本回答被网友采纳
第2个回答  2013-06-03
理论上来讲,Java中数组声明后是不能改变其长度的,但是可以通过别的途径来实现看上去是改了变数组长度的效果.
在JDK1.6版以后提供了Arrays.copyOf(arr, newLength)方法,例:
String[] arr = {"a","b","c","d","e"};
arr = Arrays.copyOf(arr, 10);
这两句结果是把数据Arr的长度改为10.
实际上,第二个Arr是在堆中重新划分出一个区域,将第一个Arr的内容拷贝过来,
并补齐数据位.这时的Arr已经不再是上面的Arr了.

ArrayList<E>,是有序集合的一种型式(泛型),在JDK1.5之后提供,它规定了这个集合是存放的数据是什么类型.
第3个回答  2015-12-15
JAVA中的数组没有动态的
要是想用动态的数据结构就用向量Vector

采用Vector
import java.until.Vector;

例如:
Vector vet==new Vector();
String str="test1";
double t1=0.124;
vet.add(str);
vet.add(String.valueOf(t1));
可以用 vet.size()获取其大小。
通过vet.get(i);获取第i个元素(i从0开始),类型为Object,转换一下就可以了。
具体可以查看jdk api文档
第4个回答  2013-06-03
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {

//List,Map,Set都是集合,E为泛型,也就是数据类型理解吧。ArrayList是List的一个子类。
//一旦定义好泛型,在添加数据的时候,就只能添加定义好的类型,不能添加别的。
//你还可以去看一下队列,先进先出,后进先出,因为不常用,我也记不太清了。

//可一直往下加,有序集合,
List<String> test=new ArrayList<String>();
test.add("a");
test.add("b");

for(String t:test){

System.out.println(t);
}

for(int i=0;i<test.size();i++){

System.out.println(test.get(i));
}

//key,value。无序集合。取值的时候,可以根据key取值,也可根据value取值。
Map<String,String> map=new HashMap<String,String>();

map.put("a", "1");
map.put("b", "2");

for(String m:map.keySet()){

System.out.println(m);
}

for(String m:map.values()){

System.out.println(m);

}

Set<String> sets=new HashSet<String>();

sets.add("a");

sets.add("b");

for(String set:sets){
System.out.println(set);

}

}

}

Java学习ArrayList之实现自己的动态数组
探讨Java的ArrayList实现与自己动手构建动态数组 深入学习Java的ArrayList,发现其底层采用数组实现,使用无参构造器创建数组时长度为0 有参数构造器可根据指定大小创建数组 无参构造器初始容量为10 首次调用add方法时,数组初始化容量 容量检查与自动扩容机制:在添加元素时,系统检测容量是否足够 若不足,返回...

Java静态与动态数组特点分析
平常我们接触到的大多都是静态数组 其实在很多的时候 静态数组根本不能满足我们编程的实际需要 比方说我需要在程序运行过程中动态的向数组中添加数据 这时我们的静态数组大小是固定的 显然就不能添加数据 要动态添加数据必须要用到动态数组 动态数组中的各个元素类型也是一致的 不过这种类型已经是用一个非...

Java 求问如何把动态数组在界面中输出,进行修改,显示等?
import java.util.ArrayList;import java.util.Iterator;public class AryDemo {public static void main(String[] args) {\/\/<Integer>指明ArrayList里面存放都是Integer类型的数据.参数20表明底层数组的初始长度为20ArrayList<Integer> list = new ArrayList<Integer>(20);for (int i = 0; i < 3; ...

java如何定义动态数组
JAVA中的数组没有动态的 要是想用动态的数据结构就用向量Vector 采用Vector import java.until.Vector;例如:Vector vet==new Vector();String str="test1";double t1=0.124;vet.add(str);vet.add(String.valueOf(t1));可以用 vet.size()获取其大小。通过vet.get(i);获取第i个元素(i从0开...

Java的动态数组怎么做
1.语法:add()是添加一个新的元素,remove()删除一个元素,size()获得ArrayList的长度。ArrayList的下标是从0开始。2.示例代码 import java.util.ArrayList;public class JavaArrayList { public static void main(String[]args) { \/\/Java动态数组的初始化 ArrayList al=new ArrayList();\/\/向Java动态...

java的数组和创建?
java String[] array = {"a", "b", "c"};这种方法在定义数组时就直接包含了元素。然而,更常见且灵活性更高的创建方式是动态创建。例如:java String[] array = new String[] {"a", "b", "c"}; \/\/ 先指定元素 或者通过指定数组的长度,然后逐个赋值:java String[] array = new ...

JAVA如何实现动态数组
动态数组用ArrayList 它的底层就是动态数组 ArrayList ArrayList 集合的存取方式和数组操作很类似,可以按照index顺序来存取集合中的元素,但是还是建议采用更通用的迭代器来进行ArrayList的遍历。ArrayList与数组最大的区别就是它是可变数组,在初始化ArrayList集合的时候,可以指定一个初始化容量(Capacity 集合中...

java8中如何动态遍历动态多维数组
方法一:用map来实现 比如要创建一个1行、3列的数组,实现方法如下:public static void main(String[] args) throws CloneNotSupportedException { Map<Double, List<Double>> myMap = create(1, 3);}public static Map<Double, List<Double>> create(double row, double column) { Map...

Java动态数组
ArrayList就是一个可以变成的数组(你可以这样理解)ArrayList<E> 其中E是一个泛型,例如,ArrayList<String> array=new ArrayList<String>();则表示新建一个存放String的可变长数组。ArrayList<Object> array1=new ArrayList<Object>()则为一个存放Object的可变长数组。记住,这种样式的E,有的用T表示...

如何用java语言创建不定长动态数组
public class intArray { private int theSize=0;;private int a_int[]={};public intArray(int a[]){ this.a_int=a;this.theSize=a.length;} public intArray(){ this.theSize=0;} public int getSize(){ return this.theSize;} public int getAt(int nIndex){ return this.a_int...

相似回答