文档章节

list的用法

Carbenson
 Carbenson
发布于 2015/06/16 23:47
字数 959
阅读 23
收藏 0
1、List中可以添加任何对象,包括自己定义的新的类。
  • class Person{
    .....
    }
    上面定义了一个Person类,下面看好如何使用List
    Person p1=new Person();
    Person p2=new Person();
    List list=new ArrayList();
    list.add(p1);
    list.add(p2);//这里是将对象加入到list中
    for(int i=0;i
    Person p=(Person)list.get(i);//注意,这里一定要强制类型转换,因为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(实现堆栈)







一 list接口
1.java.util.ArrayList类实现一个可增长的动态数组,平时用的比较多的就是add()方法,其它方法
请参考API帮助文档。使用该方法向集合内添加对象,并且这些对象是按照一定的顺序排列
的,它内部原理是数组实现的,因此处理数据量较大时,不建议使用。

public class TestArrayList {

public static void main(String[] args) {
//声明List 并实例化为ArrayList
List al = new ArrayList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍历出集合的元素并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}

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


public class TestArrayList {

public static void main(String[] args) {
//声明List 并实例化为Vector
List al = new Vector();
//使用add()方法添加对象
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍历出集合的对象并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}

}
3.java.util.LinkedList类实现了链表,可初始化化为空或者已存在的集合,通常使用以下方法
add();向链表末尾添加对象。
addFirst()在链表开头添加对象。
addLast()在链表末尾添加对象。
getFirst()得到链表开头的对象。
getLast()得到链表末尾的对象。
注意该类提供了随机访问列表中的元素的方法,但是底层依然必须遍历去查找随机访问的对象,因此性能依然有限.

public static void main(String[] args) {
//声明LinkedList并实例化
LinkedList al = new LinkedList();
//使用add()方法添加元素
al.add("a");
al.add("b");
al.add("c");
al.add("d");
//使用Iterator迭代器遍历出集合的元素并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
System.out.println("_____");
//向链表头和尾分别添加x和z
al.addFirst("z");
al.addLast("x");
//遍历查看添加后的结果
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}

}

4.java.util.Stack类实现了堆栈数据结构,即按照先进后出的原则存放数据。创建时只能为空。
使用push()方法进行添加对象
public static void main(String[] args) {
//声明Stack并实例化
Stack al = new Stack();
//使用push()方法添加元素
al.push("a");
al.push("b");
al.push("c");
al.push("d");
al.push("f");
//使用Iterator迭代器遍历出集合的元素并打印
for(Iterator i = al.iterator();i.hasNext(); ){
String str = (String) i.next();
System.out.println(str);
}
}
 
-----------
Example added by myself:
public class Test {
 
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  ArrayList list = new ArrayList();
  list.add(0,"aa");
  list.add(1,"bb");
  list.add(2,"cc");
  for(int i=0;i<10;i++)
  {
   
   list.add(Integer.toString(i));
  }
  for(int i=0;i<list.size();i++)
  {
   System.out.println(list.get(i));
  }
  for(Iterator i=list.iterator();i.hasNext();)
   //首先定义一个list对象的Iterator,然后利用该Iterator进行循环迭代操作
  {
   String s =(String)i.next();
   System.out.println(s);
  }
 }
}

© 著作权归作者所有

共有 人打赏支持
Carbenson
粉丝 15
博文 253
码字总数 80680
作品 0
广州
程序员
私信 提问
Immutable.js了解一下?

本篇只是对Immutable.js的简单介绍,后续会继续分享其具体实践应用。 什么是Immutable Data? Immutable data encourages pure functions (data-in, data-out) and lends itself to much si...

桂圆_noble
03/29
0
0
java--集合框架

集合接口 1.List接口 它继承于Collection,有序集合。常用用法: 2.Set接口 它继承于Collection,无序集合,且不允许出现重复元素,可以包含null元素(最多只有一个)。常用用法: 3.Map接口 ...

求是科技
2016/09/02
36
0
Java 泛型 PECS

最近在研究框架的源码,发现有好多代码中使用了很多泛型了的用法和。以前看《Java编程思想》的时候也有所了解,但是具体不是很清楚,所以写了这篇博客分享一下。其实这写用法可以叫做Java泛型...

famiover
2016/10/27
33
0
参数为集合时,mybatis3 分页查询问题及其对应的解决方法

当参数为集合时,使用mybatis3分页查询时抛出的异常: UserMapperTest.java的部分代码(测试用例): UserMapper.java部分代码: UserMapper.xml代码(错误的用法示范): 执行测试用例后,后...

有钱有爱
2016/06/17
77
0
List的二种循环速度比较

我们都知道从jdk1.5起JAVA可以使用一种新的循环写法 // 以前的用法   int len=list.size();   for (int k = 0; k < len; k++) { System.out.println(list.get(k));   }  //1.5 的用法 ...

JavaGG
2010/03/24
467
0

没有更多内容

加载失败,请刷新页面

加载更多

微信小程序 用canvas绘制的图插入到分享中

用canvas绘制图 createNewImg: function () {var that = this;var ctx = wx.createCanvasContext('mycanvas');ctx.setFillStyle("#F4F4F4");// context.setFillStyle("#fff")ctx.fillRe......

潇潇程序缘
12分钟前
0
0
公司报表数据库优化

报表系统优化 背景: 11.22早晨 刚放下背包,收到一份邮件,邮件意思是公司报表数据库慢,让我帮忙看看。邮件还附带了一个SQL文本,指出这个SQL慢。随后电话了开发人员了解事情来龙去脉,原来...

hnairdb
12分钟前
1
0
javascript代码技巧

1、var gt = window.showgt || (windows.showgt="abc");

gtandsn
16分钟前
0
0
TiDB EcoSystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理

简介 TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组件在功能上类似于 MySQL 的主从复制,MySQL 的主从复制依赖于记录的 binlog 文件,TiDB-Binlog 组件也是如此...

TiDB
32分钟前
1
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
35分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部