java list详解_java List集合,ArrayList类用法详解

下面要给大家介绍的就是Java List集合方面的知识,主要讲到的是ArrayList类用法详的内容,下面就一起来了解一下吧,有具体的代码示例哦。

List是一个有序、可重复的集合,集合当中,每个元素都有其对应的顺序索引,List集合允许使用重复元素,能够通过索引来访问指定位置的集合元素,List集合默认按元素的添加顺序设置元素的索引,第一个添加到

List 集合中的元素的索引为0,第二个为1,以此类推。

List实现了Collection接口,它主要有两个常用的实现类:ArrayList类和LinkedList类。

下面详细的讲一下ArrayList类。

ArrayList类

ArrayList类实现了可变数组的大小,存储在内的数据称为元素,它还提供了快速基于索引访问元素的方式,对尾部成员的增加和删除支持较好,使用ArrayList创建的集合,允许对集合中的元素进行快速的随机访问,但是,向ArrayList当中插入和删除元素的速度会比较的慢。

ArrayList类的常用构造方法的重载形式:

ArrayList()---构造一个初始容量为10的空列表;

ArrayList(Collectionc)---构造一个包含指定Collection元素的列表,这些元素是按照该Collection的迭代器返回它们的顺序排列的;

ArrayList类除了包含Collection接口中的所有方法之外,还包括List接口中提供的如下所示的方法。

ArrayList类的常用方法:

a879bd05fa6a2c538cd4430cd7447f36.png

这里的话要注意了,在调用List的set(int index, Object

element)方法来改变List集合指定索引处的元素的时候,指定的索引一定要是List集合的有效索引,例,集合长度为4,就不可以指定替换索引为4处的元素,也就是说这个方法不会改变List集合的长度。

示例:

使用ArrayList类向集合中添加三个商品信息,包括商品编号、名称和价格,之后,遍历集合输出这些商品信息。

创建一个商品类Product,在这个类中定义3个属性和toString()方法,分别实现setter/getter方法。

代码实现:public class Product

{

// 商品类

private int id; // 商品编号

private String name; // 名称

private float price; // 价格

public Product(int id, String name, float price)

{

this.name = name;

this.id = id;

this.price = price;

}

// 这里是上面3个属性的setter/getter方法,这里省略

public String toString()

{

return "商品编号:" + id + ",名称:" + name + ",价格:" + price;

}

}

创建一个测试类,调用Product类的构造函数实例化三个对象,将Product对象保存至ArrayList集合中,最后遍历该集合,输出商品信息。

测试类的代码实现:public class Test

{

public static void main(String[] args)

{

Product pd1 = new Product(4, "木糖醇", 10);

Product pd2 = new Product(5, "洗发水", 12);

Product pd3 = new Product(3, "热水壶", 49);

List list = new ArrayList(); // 创建集合

list.add(pd1);

list.add(pd2);

list.add(pd3);

System.out.println("*************** 商品信息 ***************");

for (int i = 0; i 

{

// 循环遍历集合,输出集合元素

Product product = (Product) list.get(i);

System.out.println(product);

}

}

}

这个示例当中的ArrayList集合中存放的是自定义类Product的对象,这和存储的String类的对象是相同的,和Set不同的是,List集合中存在get()方法,这个方法能够通过索引来获取所对应的值,获取的值为Object类,所以要将这个值转换成Product

类,从而获取商品信息。

程序运行结果:*************** 商品信息 ***************

商品编号:4,名称:木糖醇,价格:10.0

商品编号:5,名称:洗发水,价格:12.0

商品编号:3,名称:热水壶,价格:49.0

示例:

在使用List集合的时候,要注意区分indexOf()方法和lastIndexOf()方法,前者是获得指定对象的最小索引位置,后者是获得指定对象的最大索引位置,前提条件是指定的对象在List集合中有重复的对象,否则这两个方法获取的索引值相同。

下面的代码演示了indexOf()方法和lastIndexOf()方法的区别:public static void main(String[] args)

{

List list = new ArrayList();

list.add("One");

list.add("|");

list.add("Two");

list.add("|");

list.add("Three");

list.add("|");

list.add("Four");

System.out.println("list 集合中的元素数量:" + list.size());

System.out.println("list 集合中的元素如下:");

Iterator it = list.iterator();

while (it.hasNext())

{

System.out.print(it.next() + "、");

}

System.out.println("\n在 list 集合中'丨'第一次出现的位置是:" + list.indexOf("|"));

System.out.println("在 list 集合中'丨'最后一次出现的位置是:" + list.lastIndexOf("|"));

}

上面的代码创建了一个List集合list,之后,添加了7个元素,因为索引从0开始,所以最后一个元素的索引为6。

输出结果:list 集合中的元素数量:7

list 集合中的元素如下:

One、|、Two、|、Three、|、Four、

在 list 集合中'|'第一次出现的位置是:1

在 list 集合中'|'最后一次出现的位置是:5

示例:使用subList()方法截取List集合中部分元素的时候要注意,新的集合中包含起始索引位置的元素,可是不包含结束索引位置的元素,例,subList(1,4)方法实际截取的是索引1到索引3的元素,并组成新的List集合。

下面的代码演示了subList()方法的具体用法:public static void main(String[] args)

{

List list = new ArrayList();

list.add("One");

list.add("Two");

list.add("Three");

list.add("Four");

list.add("Five");

list.add("Six");

list.add("Seven");

System.out.println("list 集合中的元素数量:" + list.size());

System.out.println("list 集合中的元素如下:");

Iterator it = list.iterator();

while (it.hasNext())

{

System.out.print(it.next() + "、");

}

List sublist = new ArrayList();

sublist = list.subList(2, 5); // 从list集合中截取索引2~5的元素,保存到sublist集合中

System.out.println("\nsublist 集合中元素数量:" + sublist.size());

System.out.println("sublist 集合中的元素如下:");

it = sublist.iterator();

while (it.hasNext())

{

System.out.print(it.next() + "、");

}

}

输出结果:list 集合中的元素数量:7

list 集合中的元素如下:

One、Two、Three、Four、Five、Six、Seven、

sublist 集合中元素数量:3

sublist 集合中的元素如下:

Three、Four、Five、

关于Java List集合ArrayList类用法你都了解了吗?更多和Java

List集合等方面相关的java基础知识,请继续通过奇Q工具网来进行学习吧!

推荐阅读:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值