java--集合框架(List,Set,Map)超详细(——List)

java--集合框架(List,Set,Map)超详细(——List)_第1张图片

集合框架 作用:实现数据的存储和操作
	/**
	 * 1.List接口
	 * List接口中的实现类ArrayList存储数据的特点:
	 * 		以数组的方式进行数据的存储,但是要优于数组,比如下面list实现的是长度可变的数组
	 * */
		//1.ArrayList
		List list = new ArrayList();
		//向list集合框架中添加元素的方法(可以添加任何类型)
		list.add(1);
		list.add("张三丰");
		list.add('男');
		list.add(100.0);	
		for(int i = 0;i<list.size();i++){
			System.out.println(list.get(i));
		}

		System.out.println(list.contains("张三丰"));	//判断集合里是否有这个值
		list.add(1,"小明");	//将小明插入到下标为1的位置,后面的值下标依次加1
		list.set(0,"0张张");	//替换下标为0的值
		list.remove(0);		//把下标为0的值删掉,后面的值下标减1
		list.clear();	//清除集合里的值
		System.out.println(list.isEmpty());	//判断是否为空

		/**********/
		//如何向集合中添加同一种数据类型的数据 并且只能添加这一种类型
		//使用泛型 :指定当前集合框架只能添加什么类型的数据
		//如果List集合不指定泛型 在数据处理方面比较复杂麻烦,所以建议List集合添加泛型控制元素的类型
		List<String> names = new ArrayList<String>();
		names.add("张三");
		names.add("李四");
		for(String name : names){
			System.out.println(name);
		}

		//迭代器遍历集合
		Iterator<String> iterator = names.iterator();
		while(iterator.hasNext()){
			System.out.println(iterator.next());
		}

		/**********/
		//创建一个Student对象并添加到集合
		Student stu1 = new Student();
		stu1.setName("张三丰");
		stu1.setAge(80);
		stu1.setSid(1001);
		Student stu2 = new Student();
		stu2.setName("张无忌");
		stu2.setAge(21);
		stu2.setSid(1002);
		
		List<Student> stuList = new ArrayList<Student>();
		stuList.add(stu1);
		stuList.add(stu2);
		
		for(Student stus : stuList){	//foreach遍历
			System.out.println(stus.getSid()+"---"+stus.getName()+"---"+stus.getAge());
		}
		System.out.println();
		for(int i=0; i<stuList.size(); i++){	//for遍历
			Student stus =  stuList.get(i);
			System.out.println(stus.getSid()+"---"+stus.getName()+"---"+stus.getAge());
		}
		System.out.println();
		Iterator<Student> iterator = stuList.iterator();	//迭代器遍历
		while(iterator.hasNext()){
			Student stus = iterator.next();
			System.out.println(stus.getSid()+"---"+stus.getName()+"---"+stus.getAge());
		}

		//2.LinkedList
		//使用List接口中的LinkedList实现类 
		//存储数据的特点:以链表的方式进行数据的存储
		//相对于ArrayList来说 对集合中元素新增或者删除等操作效率高
		//相对于数据的查询来说 ArrayList性能要比LinkedList的性能强。
		//List object = new LinkedList();//向上转型(多态的一种形式),LinkedList特有的方法会丢失所以要:
		LinkedList object = new LinkedList();//方法和ArrayList差不多,但是用集合一般是遍历,所以ArrayList用的较多
		//举例:
		object.addFirst("呜呜呜");//顾名思义是往集合的开头添加元素,相当于list.add(0,"呜呜呜");
		object.addLast("去去去");//相当于list.add(list.size()+1,"去去去");

你可能感兴趣的:(Java)