集合

1. Collection 表示一组对象,它是集中、收集的意思,就是把一些数据收集起来。

2. Collection接口的两个子接口:

   1) List中的元素有顺序,可重复。常用的实现类有ArrayList、LinkedList和 vector。

​    Ø ArrayList特点:查询效率高,增删效率低,线程不安全。

​    Ø LinkedList特点:查询效率低,增删效率高,线程不安全。

​    Ø vector特点:线程安全,效率低,其它特征类似于ArrayList。

   2) Set中的元素没有顺序,不可重复。常用的实现类有HashSet和TreeSet。

​    Ø HashSet特点:采用哈希算法实现,查询效率和增删效率都比较高。

​    Ø TreeSet特点:内部需要对存储的元素进行排序。因此,我们对应的类需要实现Comparable接口。这样,才能根据compareTo()方法比较对象之间的大小,才能进行内部排序。

3. 实现Map接口的类用来存储键(key)-值(value) 对。Map 接口的实现类有HashMap和TreeMap等。Map类中存储的键-值对通过键来标识,所以键值不能重复。

4. Iterator对象称作迭代器,用以方便的实现对容器内元素的遍历操作。

5. 类 java.util.Collections 提供了对Set、List、Map操作的工具方法。

6. 如下情况,可能需要我们重写equals/hashCode方法:

   1) 要将我们自定义的对象放入HashSet中处理。

   2) 要将我们自定义的对象作为HashMap的key处理。

   3) 放入Collection容器中的自定义对象后,可能会调用remove、contains等方法时。

7. JDK1.5以后增加了泛型。泛型的好处:

   1) 向集合添加数据时保证数据安全。

   2) 遍历集合元素时不需要强制转换。

 

使用List和Map存放多个图书信息,遍历并输出。其中商品属性:编号,名称,单价,出版社;使用商品编号作为Map中的key

package day09;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Set;
 

public class TestBook {
	
	String id; 
	String name; 
	double price; 
	String press; 

 
	public TestBook(String id, String name, double price, String press) {
		super();
		this.id = id;
		this.name = name;
		this.price = price;
		this.press = press;
	}
 

	public String toString() {
		return "BookInfo: [编号:" + id + ", 书名:" + name + ", 售价:" + price + ", 出版社:" + press + "]";
	}
 
	public static void main(String[] args) {
		
		TestBook tb1 = new TestBook("1001", "java", 68, "南方出版社");
		TestBook tb2 = new TestBook("1002", "html", 49.9, "广东人民出版社");
		TestBook tb3 = new TestBook("1003", "winform", 39.9, "上海出版社");
		TestBook tb4 = new TestBook("1004", "python", 55, "人民出版社");
 

		List<TestBook> listbook = new ArrayList<TestBook>();

		listbook.add(tb1);
		listbook.add(tb2);
		listbook.add(tb3);
		listbook.add(tb4);


		for (TestBook s : listbook) {
			System.out.println(s);
		}
		System.out.println("------------");

		HashMap<String, TestBook> map = new HashMap<String, TestBook>();

		map.put(tb1.id, tb1);
		map.put(tb2.id, tb2);
		map.put(tb3.id, tb3);
		map.put(tb4.id, tb4);

		Set<String> keyset = map.keySet();

		for (String string : keyset) {
			System.out.println(map.get(string));
		}
	}}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值