java中的Array list(数组列表)&&Multi Dimensional Array List(多维数组列表)及方法

Array list(数组列表)

数组列表在英文中的解释是:

similar to an array but an ArrayList object’s size is automatically
adjusted to accommodate the number of items being stored.

翻译过来就是:类似于数组,但ArrayList对象的大小会自动调整以适应存储的项目数.
由此可知这是一个类似数组的东西,但是它是动态存储,有点像c语言中的链表,但与链表不同的是它可以根据数组下标直接找到对应元素,不必像链表一样遍历。
Array list(数组列表)包含在java.util package中
接下来我们说一下数组列表的一些有关方法:

  • ArrayList aList = new ArrayList();这是数组列表的一个声明
  • add items (next item or at a particular position)//添加数据
    例如:aList.add(“apple”); //如果插入的前方没有数字,则默认插入到数组列表的尾端。
    aList.add(1, “pear”);//表示在下标为1的地方插入字符串“pear”,同时后面的元素依次后移。
  • get an item at a particular position//读取数据
    例如:aList.get(0); //读取下标为0的元素
    aList.get(1);//读取下标为1的元素
  • get the size of the list//获取数组长度
    例如:aList.size();//这里的size()还有一个妙用,我会在下面进行说明
  • write out the entire list without having to visit each element
    例如:System.out.print(aList);//将列表中值全部输出,这里不需要像数组一样用for循环逐一输出,这也是数组列表的一个优点。

下面是一个实例,可以帮助大家理解数组列表动态的过程:

import java.util.Scanner;
import javax.swing.JOptionPane;
import java.util.*;
public class Task2
{
	public static void main(String [] args)
	{
		ArrayList<String> aList = new ArrayList<String>();
		//不同类型的数组列表需要加上不同的类型名称,如果是int型我们则需要:ArrayList<Integer>aList = new ArrayList<Integer>();来表示
         aList.add("blue");
         aList.add("black");
         aList.add("red");
         aList.add(1, "yellow");
         aList.add((aList.size() - 1), "green");
		 System.out.println(aList);
	}
}

输出结果:[blue, yellow, black, green, red]
过程讲解:
1.首先我们在这个列表中插入了一个"blue",这时候列表只有唯一一个元素:blue
2.我们再次插入了一个"black"在列表尾端,此时列表元素为:blue、black.
3.再次在尾端插入"red",此时列表元素为:blue、black、red.
4.在下标为1的地方插入一个"yellow",此时列表元素为:blue、yellow、black、red.//值得注意的是:列表是以下标0为开始,所以yellow会插入到第2位,同时后面的元素依次后移一位。
5.此时列表中共有4个元素,所以(aList.size() - 1)=3,也就是在下标为3的地方插入"green",由于列表下表从0开始,所以下表为3的地方也就是元素"red"的位置,此时我们会将”green“插入到原本”red“的位置,同时将”red“后移一位,所以最有也就形成了[blue, yellow, black, green, red]的输出。
其实数组列表还有很多方法在这里我就不一一详细讲解了:

  • aList.remove(1); //删除数据
  • aList.clear(); //删除所有元素
  • aList.set(1, “pink”);//修改
  • System.out.println(aList.contains(“red”));//查找
  • System.out.println(aList.indexOf(“black”));//返回表中第一个匹配元素的下标
  • System.out.println(aList.lastIndexOf(“red”));//返回最后一个匹配的元素的下标
  • contains(“red”);//如果此列表中包含指定的元素,则返回true
  • indexOf(“black”);//返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回-1
  • lastIndexOf(“red”);//返回此列表中最后一次出现的指定元素的索引,或如果此列表不包含索引,则返回-1
  • isEmpty();//如果此列表中没有元素,则返回true 。这里也可以用size(),如果size()=0则也代表列表中没有元素
  • System.out.print(aList);//输出
  • for (int i = 0; i < aList.size(); i++) //输出
    System.out.println(aList.get(i));
    下面附上几个程序希望能够帮助大家更好的理解这些方法。
import java.util.*;
public class ArrayList3
{
  public static void main(String [] args)
  {
    ArrayList<String> aList = new ArrayList<String>();
    aList.add("blue");		
    aList.add("black");
    aList.add("red");		
    aList.add(1, "yellow");
    aList.add((aList.size() - 1), "green");    
    aList.remove(1);
    aList.set(1, "pink");
    for (int i = 0; i < aList.size(); i++)
      System.out.print(aList.get(i) + "\t");
  }
}

输出结果:blue pink green red

import java.util.*;
public class ArrayList4
{
  public static void main(String [] args)
  {
    ArrayList<String> aList = new ArrayList<String>();
    int position;	aList.add("blue");	aList.clear();	
    System.out.println(aList.isEmpty());
    aList.add("black");	aList.add("red");
    System.out.println(aList.contains("red"));
    position = aList.indexOf("black");    
    System.out.println(position);
    position = aList.lastIndexOf("red");    
    System.out.println(position); 
    System.out.println(aList);
  }
}

输出结果:
true
true
0
1
[black, red]

Multi Dimensional Array List(多维数组列表)

  • public static ArrayList<ArrayList> contactsList;//多维数组列表的声明
  • 多维数组列表创建 ,该函数会创建一个n列的多维数组列表,每一列可以看做一个单独的数组列表
public static void createArrayList()
  {
    int numberOfSubLists = n;  
    contactsList = new ArrayList<ArrayList<String>>();
    for (int i = 1; i <= numberOfSubLists; i++)
	contactsList.add(i, new ArrayList<String>());
  }
  • contactsList.get(i).add(0, “yellow”);//提取第i列数组列表,并在下标为0的位置添加"yellow"元素
  • if (contactsList.get(i).size() == 0)//可以用来判断第i列数组列表是否为空列表
  • result=contactsList.get(n).get(m)//提取第n列数组列表中下标为m的元素,并把该元素赋值给result
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值