本文目录一览:
java的静态数组和动态数组有什么区别?
链接:
提取码: d6gp
静态数组,其实在很多的时候,静态数组根本不能满足我们编程的实际需要,比方说我需要在程序运行过程中动态的向数组中添加数据,这时我们的静态数组大小是固定的,显然就不能添加数据,要动态添加数据必须要用到动态数组,动态数组中的各个元素类型也是一致的,不过这种类型已经是用一个非常大的类型来揽括—t类型。
Java的动态数组怎么做
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList
,ArrayList
是Java API中自带的java.util.ArrayList
。下面介绍一下ArrayList
作为Java动态数组的用法。
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList
,ArrayList
是Java API中自带的java.util.ArrayList
。下面介绍一下ArrayList
作为Java动态数组的用法。
- 语法:
add()
是添加一个新的元素,
remove()
删除一个元素,
size()
获得ArrayList
的长度。
ArrayList
的下标是从0开始。 - 示例代码:
import java.util.ArrayList;
public class JavaArrayList {
public static void main(String[] args) {
// Java动态数组的初始化
ArrayList al = new ArrayList();
// 向Java动态数组中添加数据
al.add("a");
al.add("b");
al.add("c");
// 输出Java动态数组
for (int i = 0; i < al.size(); i++) {
String alEach = (String) al.get(i);
System.out.println(alEach);
}
// 删除数组中的某个元素,删除第二个元素
al.remove(1);
// 修改Java动态数组,把新的元素放到第二个位置
al.add(1, "2");
// 输出Java动态数组
for (int i = 0; i < al.size(); i++) {
String alEach = (String) al.get(i);
System.out.println(alEach);
}
}
}
输出如下:
a
b
c
a
2
c
PS:Java的一维动态数组一般是使用集合的:ArrayList
、HashMap
等
泛型:
ArrayList<T> a = new ArrayList<T>();
T
是你数组里存的类型,比如String
类型的,比如int
的。你可以去看下泛型就明白了。
java动态数组
提供范例参考:
ArrayList
是Java当中的一个类别,与Array
差在於因为它是一个写好的类别,有很多可以直接用的程式码,所以很方便。
使用方法:
- 构建:
ArrayList<String> myList = new ArrayList<String>(); // 指定是String的型态
ArrayList myList = new ArrayList(); // 也可以不指定
- 加入元素:
String s = new String();
myList.add(s);
- 查询list大小:
int theSize = myList.size();
- 查询特定元素:
boolean isIn = myList.contains(s); // 若用上面的例子 因为有s字串 所以回传true
- 查询特定元素位置:
int idx = myList.indexOf(s); // 会回传0 表第0个位置
- 判断List是否为空:
boolean empty = myList.isEmpty(); // 因为有一个元素 会回传false
- 删除特定元素:
myList.remove(s);
Java动态数组
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>
才可以