博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java list用法
阅读量:7254 次
发布时间:2019-06-29

本文共 2562 字,大约阅读时间需要 8 分钟。

hot3.png

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

你可能感兴趣的文章
今天游泳去了 各种扑腾 各种呛水 各种撞屁股
查看>>
CactiEz监控主机
查看>>
学习stp个人笔记portfast、Bpdu Guard、Bpdu Filter
查看>>
如何设置AppScan的外部浏览器
查看>>
轻松搞定个人虚拟桌面部署之1-远程桌面服务概述
查看>>
MySQL两条命令的区别
查看>>
计算机基础
查看>>
第六天的学习
查看>>
时间戳获取
查看>>
SylixOS调试方法详解——综合案例分析
查看>>
怎么禁止wiif下王者荣耀?
查看>>
100人局域网(企业)至少需要多少带宽?
查看>>
Validform表单验证总结篇
查看>>
NTP服务器时间不对
查看>>
Linux- 环境变量PATH、cp、mv、cat--wc-more-less-tail
查看>>
Linux -chown-更改所有者和所属组
查看>>
印度国有液化石油气公司670万用户信息遭泄露,包括Aadhaar号码
查看>>
Linux系统内存性能分析
查看>>
mysql复制
查看>>
BOM的理解--各种窗口之间的关系
查看>>