JAVA: List用法

1、List中可以添加任何对象,包括自己定义的新的类。
  • class Person{.....}上面定义了一个Person类,下面看好如何使用ListPerson p1=new Person();Person p2=new Person();List list=new ArrayList();list.add(p1);list.add(p2);//这里是将对象加入到list中for(int i=0;iPerson p=(Person)list.get(i);//注意,这里一定要强制类型转换,因为List中取出的对象都是Object类型的,希望对你有所帮助
    
    }
2、List是一个接口,不能实例化,需要实例化一个ArrayList或者LinkedListList 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 并实例化为ArrayListList 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 并实例化为VectorList 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和zal.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);  } }
}
时间: 2024-10-13 12:40:36

JAVA: List用法的相关文章

Java RMI 用法总结

RMI就是远程方法调用的简写.顾名思义,就是让一台机器上的对象调用另外一个机器上的对象.RMI的用法非常简单,首先是服务端定义一个接口(接口要扩展Remote接口),再实现这个接口(要扩展UnicastRemoteObject),再绑定到Naming静态类中.客户端通过Naming获取一个远程对象,就可以像普通的对象一样调用远程对象了.RMI中有个Stub类,它的作用就是代理服务器的接口对象,负责将方法的调用转换成网络请求发送给服务器,再从服务器返回对象进行解码.在JDK1.5中,Stub类会自

最全面的Java多线程用法解析

最全面的java多线程用法解析,如果你对Java的多线程机制并没有深入的研究,那么本文可以帮助你更透彻地理解Java多线程的原理以及使用方法. 1.创建线程 在Java中创建线程有两种方法:使用Thread类和使用Runnable接口.在使用Runnable接口时需要建立一个Thread实例.因此,无论是通过Thread类还是Runnable接口建立线程,都必须建立Thread类或它的子类的实例.Thread构造函数: public Thread( ); public Thread(Runnab

Java ReadWriteLock 用法

对象的方法中一旦加入synchronized修饰,则任何时刻只能有一个线程访问synchronized修饰的方法.假设有个数据对象拥有写方法与读方法,多线程环境中要想保证数据的安全,需对该对象的读写方法都要加入 synchronized同步块. 这样任何线程在写入时,其它线程无法读取与改变数据:如果有线程在读取时,其他线程也无法读取或写入. 这种方式在写入操作远大于读操作时,问题不大,而当读取远远大于写入时,会造成性能瓶颈,因为此种情况下读取操作是可以同时进行的,而加锁操作限制了数据的并发读取.

Java List 用法代码分析 非常详细

Java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对Java List用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引 ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步 LinkedList:底层的数据结构是链表结构(特点是查询较慢,增删较快) Vector:底层是数组数据结构 线程同步(数组长度

【转】java list用法示例详解

转自:http://www.jb51.net/article/45660.htm java中可变数组的原理就是不断的创建新的数组,将原数组加到新的数组中,下文对java list用法做了详解. List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引,ArrayList:底层的数据结构使用的是数组结构(数组长度是可变的百分之五十延长)(特点是查询很快,但增删较慢)线程不同步LinkedList:底层的数据结构是链表结构(

Java Enum用法详解

Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法. public enum Color { RED, GREEN, BLANK, YELLOW } 用法二:switch JDK1.6之前的switch语句只支持int,char,enum类型,使用枚举,能让我们的代码可读性更强. enum Signal { GREEN, YE

Java注解用法[email&#160;protected]

Java注解用法[email protected] 参考地址:https://www.cnblogs.com/perfei456/p/8962167.html 1.注解目标 通过 @SuppressWarnings的源码可知,其注解目标为类.字段.函数.函数入参.构造函数和函数的局部变量.建议注解应声明在最接近警告发生的位置 2.抑止警告的关键字 3.代码示例 示例1--抑制单类型的警告: 1 @SuppressWarnings("unchecked") 2 public void a

java Socket用法详解(转)

在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据. 这篇文章首先介绍Socket类的各个构造方法, 以及成员方法的用法, 接着介绍 Socket的一些选项的作用, 这些选项可控制客户建立与服务器的连接, 以及接收和发送数据的行为. 一. 构造Socket Socket的构造方法有以下几种重载形式:

[转] Java DecimalFormat 用法

我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是一个例子: importjava.text.DecimalFormat; publicclassTestNumberFormat{ publicstaticvoidmain(String[]args){ doublepi=3.1415927; //圆周率 //取一位整数 System.out.println(newDecimalFormat(

(转)Java DecimalFormat 用法(数字格式化)

我们经常要将数字进行格式化,比如取2位小数,这是最常见的.Java 提供 DecimalFormat 类,帮你用最快的速度将数字格式化为你需要的样子.下面是常用的例子: import java.text.DecimalFormat; public class Test{ public static void main(String[] args){ double pi=3.1415927;//圆周率 //取一位整数 System.out.println(new DecimalFormat("0&