java 集合类之list接口

来源:互联网 发布:铁路工程造价软件下载 编辑:程序博客网 时间:2024/05/21 18:41

Collection是List和Set两个接口的基接口
List在Collection之上增加了"有序"
Set在Collection之上增加了"唯一" 


实现list接口的类均属于Ordered类型,具有列表的功能,其元素均是按照添加(索引)的先后进行排列的。

实现list接口的类有: ArrayList    Vector  LinkedList

ArrayList类:依赖数组实现,对元素随机访问的性能很好,但进行大量的插入,删除操作时性能很差。没有同步功能,多线程时要注意使用。

Vector类: 依赖数组实现,功能方法实现了同步,同一时刻只能有一个线程访问,这是和ArrayList的唯一区别。没有特殊需要,一般使用ArrayList。

LinkedList类:依赖双链表实现,随机访问功能较差,适合用在插入,删除多,元素随机访问少的场合。功能方法没有实现同步。

list总结:

1. 元素可以为null。

2. 元素可以相同。

3.元素类型可以相同,可以不同。

4. 集合中存放的是对象的引用,而非对象本身。

5. 集合的长度随着元素个数的增加而变长。

ArrayList类的一个例子:

package collections_example;
import java.util.*;
/**
 *
 * @author andy
 */
class ArrayListElement {
int a=10 ;
String b = "hello";
void display(){
System.out.println("调用了类ArrayListElement的成员方法");
}
}
public class ArrayList_sample {
public static void main(String[] args){
ArrayList arraylist = new ArrayList();            //创建一个默认初始容量为10的ArrayList对象
System.out.print("-------------------/n");
System.out.println("列表的初始元素个数为:"+arraylist.size());
for(int i=0; i<18; i++)           //给arraylist的元素赋值
  arraylist.add(i);  
//add方法原型为 boolean add(Object o) ,此处应该为arraylist.add(new Integer(i))
//此处系统对int型进行了打包,将整形当作封装类对象使用
arraylist.add("string"); //在列尾添加一个字符串元素
arraylist.add(15, String.valueOf(100));  //在索引为15的地方插入一个字符串
arraylist.add(12,null); //在索引为12的地方插入null元素
ArrayListElement arraylistelment = new ArrayListElement();
arraylist.add(arraylistelment);  //在列尾插入一个类ArrayListElement的对象
//System.out.println("列表元素个数为"+arraylist.size()); //输出列表的元素个数
ArrayListElement a = (ArrayListElement)arraylist.get(arraylist.size()-1);
//ArrayList中并不真正存放对象,而是存放对象的引用,所有集合框架中的类都是如此
//ArrayList的get方法原型为 Object get(int index), 故此处要进行强制类型转换
a.display();
arraylist.remove(3); //删除索引为3的元素
System.out.println(arraylist.size());    //再次输出列表的元素个数
arraylist.set(5, 200); //将索引为5的元素的值更改为200
System.out.println("输出列表的元素如下:");
System.out.println(arraylist.subList(0, 10)); //输出列表前11个元素元素
System.out.println(arraylist.subList(11, arraylist.size()-1)); //输出列表剩下的元素                      System.out.println(arraylist);
}
}

运行结果为:

-------------------
列表的初始元素个数为:0
调用了类ArrayListElement的成员方法
21
输出列表的元素如下:
[0, 1, 2, 4, 5, 200, 7, 8, 9, 10]
[11, null, 12, 13, 14, 100, 15, 16, 17, string]
[0, 1, 2, 4, 5, 200, 7, 8, 9, 10, 11, null, 12, 13, 14, 100, 15, 16, 17, string, collections_example.ArrayListElement@c17164]

注意结果中输出collections_example.ArrayListElement@c17164]是因为该ArrayListElement 类没有重写toString()方法。

java.lang.Object的toString()方法的原型如下:

toString

public String toString()
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

 

返回:
该对象的字符串表示形式。
原创粉丝点击