Java类集--List接口

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

List接口的扩展方法:

List接口的常用子类--ArrayList

如果要想使用接口,则肯定要使用对象的多态性进行实例化的操作。ArrayList是List中最常用的子类。

添加数据:

import java.util.ArrayList ;
import java.util.List ;
import java.util.Collection ;
public class ArrayListDemo01{
	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) ;
		allList.addAll(0,allCollection) ;
		System.out.println(allList) ;
	}
};

既然可以增加数据,那么就可以删除数据:List中存在两种删除:根据对象内容删除、根据对象的编号删除。

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo02{
	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") ;
		allList.remove(0) ; // 删除第一个元素,指定删除的位置
		allList.remove("Hello") ;	// 此方法由Collection接口继承而来
		System.out.println(allList) ;
	}
};

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo03{
	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") ;	// 向Collection中加入内容
		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) + "、") ;
		}
	}
};

此输出方式是List接口所独有的,而其他接口是没有的,尤其是Collection中是没有根据索引取出内容的操作。

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 + "、") ;
		}
	}
};

import java.util.ArrayList ;
import java.util.List ;
public class ArrayListDemo05{
	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) ;	// 字符串截取
		System.out.println("集合截取:") ;
		for(int i=0;i<allSub.size();i++){
			System.out.print(allSub.get(i) + "、") ;
		}
		System.out.println("MLDN字符串的位置:" + allList.indexOf("MLDN")) ;
		System.out.println("集合操作后是否为空?" + allList.isEmpty()) ;
	}
};

挽救的子类:Vector

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

import java.util.Vector ;
import java.util.List ;
public class VectorDemo02{
	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) + "、") ;
		}
	}
};

时间: 2024-10-28 05:41:02

Java类集--List接口的相关文章

Java类集--Map接口、HashMap、IdentityHashMap、SortedMap

Collection的操作中之前已经发现,每次保存的对象都是一个对象,但是在Map中保存的是一对对象,对象的形式是以:key->value的形式保存的. 就好像电话本:张三-->12445 Map接口中的方法 Map接口中常用的子类: import java.util.HashMap ; import java.util.Map ; public class HashMapDemo01{ public static void main(String args[]){ Map<String

Java类集--Iterator接口、ListIterator接口、foreach及Enumeration接口

Iterator接口简介: import java.util.List ; import java.util.ArrayList ; import java.util.Iterator ; public class IteratorDemo01{ public static void main(String args[]){ List<String> all= new ArrayList<String>() ; // all.add("hello") ; all

Java类集--Set接口、HashSet、TreeSet、SortedSet接口

Set接口的定义 Collection就不能进行双向输出,因为没有提供get()方法,但是Set接口与Collection接口的定义一致,所以其本身也不能双向输出. HashSet:使用散列的方式存放内容,本身没有顺序. import java.util.HashSet ; import java.util.Set ; public class HashSetDemo01{ public static void main(String args[]){ Set<String> allSet =

Java类集--LinkedList类

LinkedList子类与Queue接口 Queue接口定义的方法 LinkedList中操作链表的部分方法 本身大量的扩充了Queue接口和List接口的操作.所以,在使用时最好直接使用LinkedList类完成操作. 为链表的开头和结尾增加数据. import java.util.LinkedList ; public class LinkedListDemo01{ public static void main(String args[]){ LinkedList<String> lin

Java类集--属性类Properties

属性是在程序中经常出现的一种形式. 在类集中提供了一个专门的Properties类,以完成属性的操作. public class Properties extends Hashtable<Object, Object> Properties是Hashtable的子类,则也是Map的子类,可以使用Map的全部操作,但是一般情况下属性类是单独使用的. import java.util.Properties; public class PropertiesDemo01{ public static

Java类集--Stack类

栈是采用先进后出的数据存储方式,每一个栈都包含一个栈顶,每次出栈是将栈顶的数据取出. Stack类 常用方法: import java.util.Stack ; public class StackDemo{ public static void main(String args[]){ Stack<String> s = new Stack<String>() ; s.push("A") ; // 入栈 s.push("B") ; // 入

Java类集--Collections

Collections常用方法及常量: 验证:空集合的操作 import java.util.Collections ; import java.util.List ; import java.util.Set ; public class CollectionsDemo01{ public static void main(String args[]){ List<String> allList = Collections.emptyList() ; // 返回空的 List集合 Set&l

JAVA的多态、接口、动态加载类等

为某研究所编写一个通用程序,用来计算每一种交通工具运行1000公里所需的时间,已知每种交通工具的参数都是3个整数A.B.C的表达式.现有两种工具:Car和Plane,其中Car的速度运算公式为:A*B/C,Plane的速度运算公式为:A+B+C.需要编写三类:ComputeTime.java,Plane.java,Car007.java和接口Common.java,要求在未来如果增加第3种交通工具的时候,不必修改以前的任何程序,只需要编写新的交通工具的程序.其运行过程如下,从命令行输入Compu

java中实现Serializable接口的类有什么特点?

问题描述 java中实现Serializable接口的类有什么特点? java中实现Serializable接口的类有什么特点,还看到这个实现该接口的类里面一个常量,private static final long serialVersionUID = 1L;如何理解这个常量呢 解决方案 Serializable是一个标识接口,没有需要实现的方法,凡是实现该接口的类都可以进行序列化和反序列化操作. 实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复.所以你想如果你的