JAVA之List集合的ArrayList类与LInkedList类的使用,以及性能比较

List集合

List接口继承了Collection接口,而collection接口又继承了Interable

实现List接口的ArrayList类

数组结构实现,

动态数组:在内存里面是连续的内存空间存储

 

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Demo01 {

	public static void main(String[] args) {
		//练习我们的集合
		
		List  lt1 =new ArrayList();
		
		List lt2 =new LinkedList();
		
		System.out.println("ArrayList的增加操作");	
		//ArrayList的增加操作
		lt1.add("String-字符串");
		lt1.add(666);//整型
		lt1.add("null");
		for(Object i:lt1) {
			System.out.println(i);
			
		}
		//ArrayList的查询操作
		
		System.out.println("ArrayList的查询操作");
		
		for(Object i:lt1) {
			System.out.println(i);
			
		}
		
		//ArrayList的删除操作
		System.out.println("ArrayList的删除操作");
			
			lt1.remove(0);
			for(Object i:lt1) {
				System.out.println(i);	
			}
			
			//ArrayList的修改操作
			System.out.println("ArrayList的修改操作");
			
			lt1.set(0,"修改");
			for(Object i:lt1) {
				System.out.println(i);
				
			}
			
	}

}

实现List接口的LinkedList类

列表结构物实现,

双向列表:在内存里面是不连续的内存空间存储

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class Demo02 {

	public static void main(String[] args) {
		//练习我们的集合
		
		List  lt1 =new ArrayList();
		
		List lt2 =new LinkedList();
		
		System.out.println("LinkedList的增加操作");	
		//ArrayList的增加操作
		lt2.add("String-字符串");
		lt2.add(666);//整型
		lt2.add("null");
		for(Object i:lt2) {
			System.out.println(i);
			
		}
		//ArrayList的查询操作
		
		System.out.println("LinkedList的查询操作");
		
		for(Object i:lt2) {
			System.out.println(i);
			
		}
		
		//ArrayList的删除操作
		System.out.println("LinkedList的删除操作");
			
			lt2.remove(0);
			for(Object i:lt2) {
				System.out.println(i);	
			}
			
			//ArrayList的修改操作
			System.out.println("LinkedList的修改操作");
			
			lt2.set(0,"修改");
			for(Object i:lt2) {
				System.out.println(i);
				
			}
			
	}

}

性能比较

public void mainAl() {
				
				List ao1 =new ArrayList();
				
				List ao2 =new LinkedList();
				
				long time1 =System.currentTimeMillis();
				for(int a1=0;a1<nums.length;a1++) {
					
					ao1.add(a1);
				
				}
				long time3 =System.currentTimeMillis();
				for(int a1=0;a1<nums.length;a1++) {
				
					

					ao2.add(a1);
					
				}
				
				long time2 =System.currentTimeMillis();
				long timea1 = time3 -time1;
				
				System.out.println("LinkedList()遍历所用的时间为:"+timea1+"ms");
				long timea2 =time2-time1;
				System.out.println("ArrayList()遍历所用的时间为:"+timea2+"ms");
				
			}//没有顺序的操作LinkedList较快
发布了22 篇原创文章 · 获赞 0 · 访问量 385

猜你喜欢

转载自blog.csdn.net/weixin_44657829/article/details/104680457