2.5 Java面向对象(五)集合

一、关于集合

1、集合从本质上讲还是数组,是可以存储多个值的存储单元。

2、集合与数组的区别:

(1)数组必须指明长度,但是集合没有长度约束,集合中有多少个元素,那么集合的长度就是多少。

(2)数组的添加和删除不方便,集合可以轻松的实现添加和删除。

(3)集合可以添加任意类型的数据,任意类型的数据添加到集合中都变成了Object(基类)类型。


二、三种集合及其用法

1、List

(1)ArrayList数组集合,有序可重复

代码实例:

@SuppressWarnings({ "unchecked", "rawtypes" })
	@Test
	public void test01(){
		List list=new ArrayList();
		//原有的元素
		list.add(1);
		list.add(1.0);
		list.add("Hello");
		list.add(new Object());
		System.out.println(list.size());//输出集合长度,【输出结果4】
		for(Object o:list){
		    System.out.println(o);  //输出集合中所有元素
		}
		System.out.println("添加元素后");
		list.add(3,"World!");   //插入到第四个元素
		for(Object o:list){
		    System.out.println(o);  //输出集合中所有元素
		}
		System.out.println("删除第四个元素后");
		list.remove(3);  //删除第四个元素
		for(Object o:list){
		    System.out.println(o);  //输出集合中所有元素
		}
		
		System.out.println("迭代器Iterator");
		Iterator it=list.iterator();
		while(it.hasNext())  //输出所有元素
		{
			Object o=it.next();
			System.out.println(o);
		}
	}

(2)链式集合:和ArrayList集合没有太大区别。

链式集合四个独有的方法:addFirst、addLast、removeFirsr、removeLast

代码示例:

@SuppressWarnings({ "unchecked", "rawtypes" })
	@Test
	public void test02(){
		LinkedList list=new LinkedList();
		list.add(1);
		list.add(1.0);
		list.add('c');
		list.add("World!");
		System.out.println(list.get(list.size()-1));//输出结果【World!】
		System.out.println(list.get(3)); //输出结果【World!】
		list.addFirst("First");
		System.out.println(list.get(0)); //输出结果【First】
		list.removeFirst();
		System.out.println(list.get(0)); //输出结果【1】
		
	}


2、Map:是一种key-value的集合

代码示例

@SuppressWarnings({ "unchecked", "rawtypes" })
	@Test
	public void test03()
	{
		/*
		 * Map集合
		 * Map集合是一种key-value的集合
		 */
		Map map=new HashMap();
		map.put(1,"小明");
		map.put(2,"小红");
		System.out.println(map.get(1));   //输出结果【小明】
		System.out.println(map.keySet());//输出结果【[1, 2]】
		System.out.println(map.values());//输出结果【[小明, 小红]】
		System.out.println(map);//输出结果【{1=小明, 2=小红}】
	}

3、Set

代码示例

@SuppressWarnings({ "rawtypes", "unchecked" })
	@Test
	public void test04()
	{
		Set set=new HashSet();
		set.add(1);
		set.add(1.0);
		set.remove(1.0);
		System.out.println(set.size());  //输出结果【1】
		Object[] o=new Object[10];
		set.toArray(o);
		System.out.println(o[0]);//输出结果【1】
	}


三、泛型集合

1、区别:集合是可以添加任意类型的数据,但是泛型集合只能添加规定类型的数据

2、泛型集合其实是对加入到集合中的数据做了类型约束的集合

3、代码示例:

@Test
	public void test06()
	{
		List<User> list=new ArrayList<User>();
		list.add(new User());
		System.out.println(list.get(0)); //输出结果【cn.demo.User@5b37e0d2】
		
		User u=new User(1001,"root","123456","男","广东广州");
		Map<Integer,User> map=new HashMap<Integer,User>();
		map.put(u.getId(),u);
		System.out.println(map.get(1001).getUsername()); //输出结果【root】
	}


Java面向对象相关知识:


2.1 Java面向对象(一)类、对象、属性、方法

2.2 Java面向对象(二)三大特征

2.3 Java面向对象(三)接口、静态、常量

2.4 Java面向对象(四)值类型和引用类型

2.5 Java面向对象(五)集合


猜你喜欢

转载自blog.csdn.net/qq_40254536/article/details/80937838
2.5