`

List接口

    博客分类:
  • JAVA
 
阅读更多

1、掌握 List 接口与Collection 接口的关系

2、掌握 List 接口的常用子类:ArrayList 、Vector

3、掌握 ArrayList 与 Vector 类的区别

具体内容

Collection 下分为很多的子接口,其中有一个 List 接口, List 接口中可以存放任意的数据。 而且在 List 接口中内容是允许重复的。List 接口的功能要比 Collection 接口强大很多,因为大量的扩充了 Collection 接口的操作。



 

 

如果要想使用接口,则肯定要使用对象的多态性进行实例化的操作,那么对于 List 接口本身也是一样的。

ArrayList 是List 中最常用的子类。

例一:

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo1{
	public static void main(String args[]){
		List<String> allList = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容,原来的内容向后移
		System.out.println(allList) ;
	}
}

 例二:在指定位置添加数据,添加的方法是 List接口扩充的方法。

import java.util.ArrayList ;
import java.util.List ;
import java.util.Collection ;
public class ArrayListDemo1{
	public static void main(String args[]){
		List<String> allList = null ;
		Collection<String> allCollection = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		allCollection = new ArrayList<String>() ;	// 指定一个集合
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容
		System.out.println(allList) ;
		
		allCollection.add("LXH") ;	// 向Collection中加入内容
		allCollection.add("www.mldn.cn") ;
		allList.addAll(allCollection) ;
		System.out.println(allList);
		
		allList.addAll(0,allCollection) ;//指定位置上加入一组数据
		System.out.println(allList) ;
	}
}

 输出结果:

[World, Hello]
[World, Hello, LXH, www.mldn.cn]
[LXH, www.mldn.cn, World, Hello, LXH, www.mldn.cn]

 例三:List 中存在两种删除:根据对象内容、根据对象的编号

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo1{
	public static void main(String args[]){
		List<String> allList = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容
		allList.add("MLDN") ;	
		allList.add("www.mldn.cn") ;
		System.out.println(allList);
		
		allList.remove(0) ; // 删除第一个元素,指定删除的位置
		System.out.println(allList);
		
		allList.remove("Hello") ;	// 此方法由Collection接口继承而来
		System.out.println(allList) ;
	}
}

 输出结果:

[World, Hello, MLDN, www.mldn.cn]
[Hello, MLDN, www.mldn.cn]
[MLDN, www.mldn.cn]

 

例四:在List 接口中提供了 get() 方法,利用此方法就可以完成输出。通过循环完成输出,循环的次数由size() 方法取得。此输出方式是 List 接口所独有的,而其他接口是没有的,尤其是 Collection 中是没有根据索引取出内容的操作。

 

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo1{
	public static void main(String args[]){
		List<String> allList = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add("Hello") ;	// 向Collection中加入内容
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容
		allList.add("MLDN") ;	
		allList.add("www.mldn.cn") ;
		System.out.print("由前向后输出:") ;
		for(int i=0;i<allList.size();i++){
			System.out.print(allList.get(i) + "、") ;
		}
		System.out.print("\n由后向前输出:") ;
		for(int i=allList.size()-1;i>=0;i--){
			System.out.print(allList.get(i) + "、") ;
		}
	}
}

 输出结果:

由前向后输出:World、Hello、Hello、MLDN、www.mldn.cn、
由后向前输出:www.mldn.cn、MLDN、Hello、Hello、World、

 输出方式二:

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo04{
	public static void main(String args[]){
		List<String> allList = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容
		allList.add("MLDN") ;	// 向Collection中加入内容
		allList.add("www.mldn.cn") ;
		String str[] = allList.toArray(new String[]{}) ;	// 指定好类型
		System.out.print("指定数组类型:") ;
		for(int i=0;i<str.length;i++){
			System.out.print(str[i] + "、") ;
		}
		System.out.print("\n返回对象数组:") ;
		Object obj [] = allList.toArray() ;	// 返回Object类型
		for(int i=0;i<obj.length;i++){
			String temp = (String)obj[i] ;	// 进行向下转型
			System.out.print(temp + "、") ;
		}
	}
};

 结果:

指定数组类型:World、Hello、MLDN、www.mldn.cn、
返回对象数组:World、Hello、MLDN、www.mldn.cn、

 例五:完成基本的输出的功能,集合中还有以下的几个操作:

判断集合是否为空:boolean isEmpty()

截取部分集合:List<E> subList(int fromIndex, int toIndex) ,List 接口扩充。截取从fromIndex开始(包括)到toIndex结束(不包括)的字符串

查找指定的对象是否存在:int indexOf(Object o),如果查找到则返回位置,否则返回 -1

查找是否存在:boolean contains(Object o)

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo1{
	public static void main(String args[]){
		List<String> allList = null ;
		allList = new ArrayList<String>() ;	// 指定操作的泛型为String
		System.out.println("集合操作前是否为空?" + allList.isEmpty()) ;
		
		allList.add("Hello") ;	// 此方法由Collection接口而来
		allList.add(0,"World") ;	// 在第一个位置上添加新的内容
		allList.add("MLDN") ;	// 向Collection中加入内容
		allList.add("www.mldn.cn") ;
		System.out.println(allList.contains("Hello")?"\"Hello\"字符串存在!" : "\"Hello\"字符串不存在!") ;
		
		List<String> allSub = allList.subList(2,3) ;	// 字符串截取,包括2但不包括三
		System.out.print("集合截取:") ;
		for(int i=0;i<allSub.size();i++){
			System.out.print(allSub.get(i) + "、") ;
		}
		System.out.println();
		System.out.println("MLDN字符串的位置:" + allList.indexOf("MLDN")) ;
		System.out.println("集合操作后是否为空?" + allList.isEmpty()) ;
	}
}

 输出结果:

集合操作前是否为空?true
"Hello"字符串存在!
集合截取:MLDN、
MLDN字符串的位置:2
集合操作后是否为空?false

 

 增加元素:pbulic void addElement(E obj) -->此方法是最早的增加元素的操作,之后此方法的功能与add() 方法一致的。

 

import java.util.Vector ;
public class VectorDemo1{
	public static void main(String args[]){
		Vector<String> allList = null ;
		allList = new Vector<String>() ;	// 指定操作的泛型为String
		allList.addElement("Hello") ;	// 此方法由Collection接口而来
		allList.addElement("MLDN") ;	// 向Collection中加入内容
		allList.addElement("www.mldn.cn") ;
		for(int i=0;i<allList.size();i++){
			System.out.print(allList.get(i) + "、") ;
		}
	}
}

 

 

  • 大小: 34.7 KB
  • 大小: 22.9 KB
  • 大小: 41 KB
  • 大小: 22.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics