本篇文章给大家谈谈java中如何给数组动态分配,以及java怎么定义动态数组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、java能动态分配数组吗?2、java 中 String 数组怎么动态赋值3、Java的动态数组怎么做
java能动态分配数组吗?
可以,通过Arrays工具类实现。给你举个例:
int[] ary={1,1,1//…};
ary=Arrays.copyOf(ary,ary.length+1);
ary[ary.length-1]=?//……你需要添加的值
java 中 String 数组怎么动态赋值
首先明确一下数组的初始化:
//静态初始化
int a[]={1,2,3};
//动态初始化
int a[]; a = new int[3] ; a[0] = 1;a[1] = 2;a[2]=3;
//默认初始化
int a [] = new int [5] ;
JAVA是强类型,数组类型一旦声明,就不能更改了;
如果数组长度确定,我想所谓的“动态赋值”用循环应该可以搞定;
如果数组的长度是不确定的,我认为你这个提问才有点价值,因为这需要根据具体情况来改变数组的长度,告诉你java是怎么干的,用的 System.arraycopy, jdk 里好多操作数组的源码都是用的这个,比如 ArrayList的实现
闲着没事写了个小例子玩玩:
import java.util.Random;
import java.util.Scanner;
/**
*
* @author LYTG
* @since 2015-12-29 上午12:21:09
*/
public class DemoTest {
/**
* @author LYTG
* @param args
*/
public static void main(String[] args) {
test2();
}
/**
* @author LYTG
* @param array
*/
public static void out(String[] array){
if(array==null){
System.out.println(“null”);
return;
}
if(array.length1){
System.out.println(“{ }”);
return;
}
StringBuffer sb = new StringBuffer();
sb.append(“{\””);
sb.append(array[0]);
sb.append(“\””);
for(int i = 1; iarray.length; i++){
sb.append(“,\””);
sb.append(array[i]);
sb.append(“\””);
}
sb.append(“}”);
System.out.println(sb.toString());
}
/**
* 声明一个长度为5的String类型数组,并为每个数组元素赋值一个随机整数
* @author LYTG
*/
public static void test1(){
String[] array = new String[5];
for(int i = 0; iarray.length; i++){
array[i] = String.valueOf(new Random().nextInt());
}
out(array);
}
/**
* 在控制台输入字符,把每次输入的字符保存到一个数组中,
* 如果输入的字符串中包含空格,则切割后再分别保存到此数组中,
* 在每次输入完成后输出整个数组,直到手动终止程序
* @author LYTG
*/
private static String[] array = new String[0];
public static void test2(){
Scanner sc = new Scanner(System.in);
System.out.println(“请输入一串字符(输入完请敲回车):”);
String input = sc.nextLine();
if(input.contains(” “)){
String[] a = input.split(” “);
int arrayLength = array.length;
int aLength = a.length;
String[] newArray = new String[arrayLength + aLength];
System.arraycopy(array, 0, newArray, 0, arrayLength);
System.arraycopy(a, 0, newArray, arrayLength, aLength);
array = newArray;
}else{
int arrayLength = array.length;
String[] newArray = new String[arrayLength + 1];
System.arraycopy(array, 0, newArray, 0, arrayLength);
newArray[arrayLength] = input;
array = newArray;
}
out(array);
test2();
}
}
Java的动态数组怎么做
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为Java动态数组的用法。
Java动态数组是一种可以任意伸缩数组长度的对象,在Java中比较常用的是ArrayList,ArrayList是javaAPI中自带的java.util.ArrayList。下面介绍一下ArrayList作为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动态数组中添加数据
al.add(“a”);
al.add(“b”);
al.add(“c”);
//输出Java动态数组
for(int i=0;ial.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;ial.size();i++) {
String alEach=(String)al.get(i);
System.out.println(alEach);
}
}
}
输出如下:
a
b
c
a
2
c
PS:java的一维动态数组一般是使用集合的:ArrayList,HashMap等
泛型:
ArrayListT a = new ArrayListT();
T是你数组里 存的类型 比如String类型的 比如int的
你可以去看下泛型 就明白了
关于java中如何给数组动态分配和java怎么定义动态数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。