java中的可变数组

来源:互联网 发布:阻止java跳转页面 编辑:程序博客网 时间:2024/06/06 12:38

本文转自:https://www.w3cschool.cn/java/java-variable-length-arrays.html

Java 可变长度数组

由 lala100 创建,最后一次修改 2017-01-09

Java数据类型教程 - Java可变长度数组


Java数组不能增长。为了创建一个可扩展的数组,我们可以使用ArrayList或Vector。

ArrayList和Vector类的工作方式相同,只是Vector类中的方法是同步的,而ArrayList中的方法不同步。

ArrayList类仅适用于对象,不适用于原始数据类型。

ArrayList类是一个通用类,它将其元素的类型作为type参数。

要使用原始值,请声明一个包装类的ArrayList。例如,使用ArrayList <Integer>来处理int元素。

例子

以下代码片段说明了ArrayList类的使用:

import java.util.ArrayList;public class Main {  public static void main(String[] args) {    ArrayList<Integer> ids = new ArrayList<Integer>();    int total = ids.size(); // total will be zero    System.out.println("ArrayList size is  " + total);    System.out.println("ArrayList elements are   " + ids);    ids.add(new Integer(10)); // Adding an Integer object.    ids.add(20); // Autoboxing    ids.add(30); // Autoboxing    total = ids.size(); // total will be 3    System.out.println("ArrayList size is  " + total);    System.out.println("ArrayList elements are   " + ids);    ids.clear();    total = ids.size(); // total will be 0    System.out.println("ArrayList size is  " + total);    System.out.println("ArrayList elements are   " + ids);  }}

上面的代码生成以下结果。

例2

像数组一样,ArrayList使用基于零的索引。 ArrayList的第一个元素的索引为零。

以下代码说明了如何使用for循环遍历ArrayList的元素。

import java.util.ArrayList;public class Main {  public static void main(String[] args) {    ArrayList<String> namelist = new ArrayList<String>();    // Add some names    namelist.add("A");    namelist.add("B");    namelist.add("C");    // Get the count of names in the list    int count = namelist.size();    for (int i = 0; i < count; i++) {      String name = namelist.get(i);      System.out.println(name);    }    namelist.remove("A");    count = namelist.size();    for (int i = 0; i < count; i++) {      String name = namelist.get(i);      System.out.println(name);    }  }}

上面的代码生成以下结果。


将ArrayList/Vector转换为数组

ArrayList类有一个名为toArray()的重载方法:

Object[]     toArray( )<T> T[]      toArray(T[ ] a)

第一个方法返回ArrayList的元素作为Object的数组。第二种方法将任何类型的数组作为参数。

以下代码显示了如何将ArrayList转换为数组。

import java.util.ArrayList;import java.util.Arrays;public class Main {  public static void main(String[] args) {    ArrayList<String> al = new ArrayList<String>();    al.add("Java");    al.add("SQL");    al.add("Data");    System.out.println("ArrayList:" + al);    String[] s1 = new String[al.size()];    String[] s2 = al.toArray(s1);    System.out.println("s1 == s2:" + (s1 == s2));    System.out.println("s1:" + Arrays.toString(s1));    System.out.println("s2:" + Arrays.toString(s2));    s1 = new String[1];    s1[0] = "hello"; // Store hello in first element    s2 = al.toArray(s1);    System.out.println("s1 == s2:" + (s1 == s2));    System.out.println("s1:" + Arrays.toString(s1));    System.out.println("s2:" + Arrays.toString(s2));  }}

上面的代码生成以下结果。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 vgm数据填错了怎么办 克里格插值 不符合正态分布怎么办 克里金插值无效的输出范围怎么办 穿完臭袜子要洗手吗不洗怎么办 超敏c反应蛋白117怎么办 钢铁雄心4无模板怎么办 登录 新浪微博登录异常怎么办 微博授权失败怎么办qq uc微博授权失败怎么办 苹果手机无线网坏了怎么办 小米手机wife信号不好怎么办 微博出错了c403怎么办 微信客服没人接怎么办 安装包解析错误怎么办平板 苹果手机新浪免费邮箱用不了怎么办 苹果手机老是弹跳邮箱登陆怎么办 qq长时间不登录上不了怎么办 父母不会说英语怎么办英国签证 美军舰真来台湾怎么办 现役军人回家探亲和人打架怎么办 对四六不懂的人怎么办 赌球小2.5进3球怎么办 皮肤旧伤黑色斑怎么办 小米5c网络不好怎么办 小米去5c卡怎么办 戴尔游匣5577开机黑屏怎么办 三星s6的通知栏拉不下来怎么办 电脑记住密码打不开了怎么办 联想手机升级系统失败了怎么办 日本语言学校申请研究生签证怎么办 在埃塞俄比亚签证过期了怎么办 看完的小说想要卖掉该怎么办 在俄罗斯脸干了痛怎么办 苹果手表电池放亏了怎么办 平板电脑电池不耐用怎么办 计算机电池放入后没反应怎么办 笔记本电脑玩游戏花屏怎么办 笔记本玩游戏花屏怎么办 笔记本电脑充电插口坏了怎么办 车蓄电池没电了怎么办 汤浅q85电瓶亏电怎么办