list集合

本文介绍了Java集合框架中的List接口及其特点,包括有序、可重复的元素特性,三种遍历方式:下标、foreach和迭代器。还展示了删除元素的方法,以及通过反射查看内部实现。同时,文章提到了泛型的概念,其在提高程序健壮性和简化代码方面的作用。最后,对比了ArrayList、LinkedList和Vector的区别,强调了它们在查询、增删改性能上的差异。
摘要由CSDN通过智能技术生成

   一、list集合与map集合

二、 Collection接口
  1 集合框架的顶级接口
  2 是Set和List的父接口
  3 但不是Map的父接口

三、list集合特点

1、有序且可重复

//list集合特点:1有序
		list.add("兰陵王");
		list.add("小乔");
		list.add("后羿");
		list.add("妲己");
		
		
		for (Object object : list) {
			System.out.println(object);
		}
		
		//list集合特点2:可以有重复的元素
		
		list.add("小乔");
		System.out.println("---------------");
		for (Object object : list) {
			System.out.println(object);
		}

效果

2、三种遍历方式

package com.zking.dog;

import java.util.ArrayList;

import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

public class Demo02 {

	public static void main(String[] args) {
		
		List list=new ArrayList();
		
		list.add("兰陵王");
		list.add("小乔");
		list.add("后羿");
		list.add("妲己");
		
		//list遍历的方式1:下标
		for (int i = 0; i < list.size(); i++) {
			System.out.println(list.get(i));
		}
		
		System.out.println("---------------");
		
		//list遍历的方式2:foreach jdk1.5之后有的
		for (Object object : list) {
			System.out.println(object);
		}
		
		System.out.println("-----------");
		
		//list遍历方式3:迭代器
		
		Iterator it=list.iterator();
		
//		it.hasNext();//返回值为boolean类型
//		it.next();//获取下一个元素并且移动迭代器的位置
		
		while(it.hasNext()) {
			Object next=it.next();
			System.out.println(next);
		}
		
		
		System.out.println("--------------");
		
		ListIterator lit=list.listIterator();
		while(lit.hasNext()) {
			Object next= lit.next();
			System.out.println(next);
		}
		
		System.out.println("--------------");
		while(lit.hasPrevious()) {
			Object previous=lit.previous();
			System.out.println(previous);
		}
		
		
		
		
		
	}

}

 效果

3、list集合删除的俩种方法

List list=new ArrayList();
        
        //list集合特点:1有序
        list.add("兰陵王");
        list.add("小乔");
        list.add("后羿");
        list.add("妲己");

        //倒序删除
//        for (int i = list.size()-1; i >=0; i--) {
//            list.remove(i);
//        }
//        
//        System.out.println(list.size());
        
        
        //迭代器删除
        Iterator it=list.iterator();//调用迭代器
        while(it.hasNext()) {
            it.next();//移动迭代器的位置
            it.remove();
        }
        
        
        
        System.out.println(list.size());

效果

4、反射

	public static void print(List list) throws Exception {
		//反射
		//1.获取类对象
		 Class clazz = list.getClass();
		 
		 //2.获取属性对象
		Field filed = clazz.getDeclaredField("elementData");
		 
		 //3.打开属性限制
		filed.setAccessible(true);
		
		
		Object[] object =(Object[]) filed.get(list);
		
		System.out.println("数组长度为:"+object.length);
		
		
		
		
		
	}

效果

 

四、 泛型
   JDK1.5之后
   以类型作为参数的类就叫泛型
   作用:提高程序健壮性,简化代码
   泛型的默认值是Object

五、 装箱、拆箱(案例:快递)
   值类型->引用类型 装箱
   引用类型->值类型 拆箱
   jdk1.5之后引入了自动装箱及自动拆箱功能

六、 ArrayList、LinkedList、Vector区别
   ArrayList:以连续的数组结构存储数据,查询块(下标)、增删改慢
   LinkedList:以链表的结构存储数据,查询慢、增删改快
   Vector:增删改查都慢,已过时,同步.线程安全


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值