java list用法

JAVA List用法

1.List中可以添加任何对象,包括自己定义的类。

//定义一个Person类

class Person{

……

}

Person person1 = new Person();

Person person2 = new Person();

List list = new ArrayList();

//添加对象

list.add(person1);

list.add(person2);

//取对象

Person person3 = (Person)list.get(0);//注意:这里一定要强制类型转换,因为List中取出的对象都是Object类型的。

2.List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedList

List myList = new ArrayList();

3.使用myList.add(任何对象);可以添加任何对象

4.取值的时候myList.get(索引);取出来的值都是Object,使用时需要类型转换。

5.可以用Iterator迭代器对List中的元素进行迭代操作。

List集合中的对象按照一定的顺序存放,里面的内容可以重复。

List接口实现的类:ArrayList(实现动态数组)、Vector(实现动态数组)、LinkedList(实现链表)、Stack(实现堆栈)。


1.java.util.ArrayList类

java.util.ArrayList类实现一个可增长的动态数组,平时用得最多的就是add()方法。使用该方法向集合内添加对象,并且这些对象按照一定的顺序排列,内部原理是数组实现的,因此处理数据量很大时,不建议使用。

List a = new ArrayList();

a.add("a");

a.add("b");

a.add("c");

//使用Iterator迭代器遍历出集合的元素并打印

for(Iterator i = a.iterator();i.hasNext();)

{

  String str = (String)i.next();

  System.out.printIn(str);

}

2.java.util.Vector(向量)类

java.util.Vector类与ArrayList类似的也是实现一个动态数组,该向量可以随意的增长以及存放等多的对象。

List a = new Vector();

a.add("a");

a.add("b");

a.add("c");

for(Iterator i = a.iterator();i.hasNext();)

{

  String str = (String)i.next();

  System.out.printIn(str);

}

3.java.util.LinkedList类实现链表

可以初始化为空或者已经存在的集合,通常使用以下方法:

add();向链表末尾添加对象

addFirst();在链表开头添加对象

addLast();在链表末尾添加对象--这个和add()一样
getFirst();得到链表开头的对象

getLast();得到链表末尾的对象

注意:该类提供了随机访问列表中的元素的方法.

LinkedList a = new LinkedList();

a.add("a");

a.add("b");

a.add("c");

for(Iterator i = a.iterator();i.hasNext();)

{

  String str = (String)i.next();

  System.out.printIn(str);

}

4. java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据,创建时只能为空,使用push()方法进行添加对象。

Stack a = new Stack();

a.push("a");

a.push("b");

a.push("c");

for(Iterator i = a.iterator();i.hasNext();)

{

  String str = (String)i.next();

  System.out.printIn(str);

}



java list用法示例详解

  1. List:元素是有序的(怎么存的就怎么取,顺序不会乱),元素可以重复。

  2. ArrayList:底层的数据结构使用的是数组结构,特点是查询很快,但增删较慢,线程不同步。

  3. LinkedList:底层的数据结构是链表结构,特点是查询慢,增删较快。

  4. Vector:底层是数组数据结构,线程同步,无论查询还是增删都很慢,被ArrayList替代了

ArrayList删除指定位置的元素

ArrayList a = new ArrayList();

a.add("javaScript");

a.add("php");

a.add("flash");

//删除第2个位置的元素

a.remove(1);

ArrayList修改指定角标的元素 set(int index,E element),返回的是修改的那个元素

a.set(2,"C++");

ArrayList查找指定位置的元素

get(int index) 返回列表中指定位置的元素

subList(int fromIndex,int toIndex) 返回列表中指定的fromIndex(包括)和toIndex(不包括)之间的部分元素

System.out.println(a.get(2)); //获取指定角标的元素,可以用该方法遍历集合中所有的元素。

System.out.println(a.subList(1,3)); // 获得集合中某一部分的元素,包含头不包含尾

java迭代器的使用

ListIterator li = a.listIterator();

while(li.hasNext())

{

    if(li.next().equals("C++"))  // 这句是java里面的字符串比  

         li.set("C#");





转载于:https://my.oschina.net/u/2312022/blog/401764

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值