您的位置:首页 > 编程语言 > Java开发

Java之list

2015-07-13 11:14 423 查看
在Java中必须掌握的东西:Collection集合这个概念,首先来看List集合。

public interface List extends Collection从这里就可以看出基本的内容了,首先List是个接口,然后是继承自Collection,而public interface Collectionextends Iterable,public interface Iterable。

1.List代表着一个有序的队列,所有就有get()的方法,实现类有四个:ArrayList,LinkedList,Vector,Stack。

ArrayList是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。

LinkedList是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。LinkedList随机访问效率低,但随机插入、随机删除效率低。

Vector是矢量队列,和ArrayList一样,它也是一个动态数组,由数组实现。但是ArrayList是非线程安全的,而Vector是线程安全的。

Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。

当然,常用的一些方法肯定要知道,比如add,get,size,indexOf,lastIndexOf,iterator,remove等等。

List的遍历方法:

package com.ltp.collection;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class ListTest {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
String str = null;
for (int i = 0; i < 10; i++) {
list.add("aaa" + i);
}

// 遍历方法1
System.out.println("=====方法1=======");
for (String tmp : list) {
System.out.print(tmp+"\t");
}
System.out.println();
System.out.println("====方法2========");

// 遍历方法2
for (int i = 0; i < list.size(); i++) {
str = list.get(i);
System.out.print(str+"\t");
}
str = null;
System.out.println();
System.out.println("====方法3========");

// 遍历方法3
Iterator<String> it = list.iterator();
while(it.hasNext()){
str = it.next();
System.out.print(str+"\t");
}
str = null;

}
}


list中的数据是可以重复的,所有有时候可能用到List的去重复操作。暂时知道的有两种方法:一是使用list的contains,二是使用set来去除其中的重复项。

package com.ltp.collection;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

public class ListRemoveRepeat {
/*public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(1);
list.add(1);
list.add(4);

Iterator<Integer> it = list.iterator();
List<Integer> newlist = new ArrayList<Integer>();

while(it.hasNext()){
int a = it.next();
if(newlist.contains(a)){
it.remove();
}else{
newlist.add(a);
}
}

for(Integer i :newlist){
System.out.print(i+"\t");
}
}*/

public static void main(String[] args) {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(1);
list.add(1);
list.add(4);

Iterator<Integer> it = list.iterator();
Set<Integer> set = new HashSet<Integer>();

while(it.hasNext()){
int a = it.next();
set.add(a);
}

for(Integer i :set){
System.out.print(i+"\t");
}
}
}


list与数组之间的相互转换?

package com.ltp.collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListToArray {
public static void main(String[] args) {
//list转换为数组
/*
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(5);
list.add(1);
list.add(2);

Integer a[] = null;
a = (Integer[]) list.toArray(new Integer[list.size()]);

for(int i=0;i<a.length;i++){
System.out.print(a[i]+"\t");
}*/

//数组转换为list
Integer a[] = {1,2,3,5,8,2,5};
List<Integer> list = new ArrayList<Integer>();
list = Arrays.asList(a);
for(Integer i:list){
System.out.print(i+"\t");
}

}
}


list中排序问题?

Collections有一个sort方法,其实现是通过compare来实现的,实际应用中可以通过实现comparable接口来完成排序。

参考内容:

http://www.jb51.net/article/42767.htm

http://blog.sina.com.cn/s/blog_8250c39a0101ka9r.html

/article/10406761.html

/article/10583979.html

/article/3966977.html

/article/7099076.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: