java 用什么集合类型可以同时保存两个对象的?

ArrayList只能保存一个的~另外一个是索引~~用什么可以保存两个都是对象?~~~... ArrayList只能保存一个的~另外一个是索引~~用什么可以保存两个都是对象?~~~ 展开
 我来答
千锋教育
2015-12-05 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
import java.util.HashMap;
import java.util.Map;

/*
 * 作为学生来说,是根据学号来区分不同的学生的,那么假设我现在已经知道了学生的学号,我要根据学号去获取学生姓名,请问怎么做呢?
 * 如果采用前面讲解过的集合,我们只能把学号和学生姓名作为一个对象的成员,然后存储整个对象,将来遍历的时候,判断,获取对应的名称。
 * 但是呢,如果我都能把学生姓名拿出来了,我还需要根据编号去找吗?
 * 针对我们目前的这种需求:仅仅知道学号,就想知道学生姓名的情况,Java就提供了一种新的集合 Map。
 * 通过查看API,我们知道Map集合的一个最大的特点,就是它可以存储键值对的元素。这个时候存储我们上面的需求,就可以这样做
 *  学号1 姓名1
 *  学号2  姓名2
 *  学号3 姓名3
 *  学号2(不行)姓名4
 *  学号4               姓名4
 * Map集合的特点:
 *  将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。 
 * 
 * Map集合和Collection集合的区别?
 *  Map集合存储元素是成对出现的,Map集合的键是唯一的,值是可重复的。可以把这个理解为:夫妻对
 *  Collection集合存储元素是单独出现的,Collection的儿子Set是唯一的,List是可重复的。可以把这个理解为:光棍(11.11)
 * 
 * 注意:
 *  Map集合的数据结构值针对键有效,跟值无关
 *  HashMap,TreeMap等会讲。
 * Collection集合的数据结构是针对元素有效
 * 
 * Map集合的功能概述:
 * 1:添加功能
 *  V put(K key,V value):添加元素。这个其实还有另一个功能?先不告诉你,等会讲
 *  如果键是第一次存储,就直接存储元素,返回null
 *  如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
 * 2:删除功能
 *  void clear():移除所有的键值对元素
 *  V remove(Object key):根据键删除键值对元素,并把值返回
 * 3:判断功能
 *  boolean containsKey(Object key):判断集合是否包含指定的键
 *  boolean containsValue(Object value):判断集合是否包含指定的值
 *  boolean isEmpty():判断集合是否为空
 * 4:获取功能
 *  Set<Map.Entry<K,V>> entrySet():???
 *  V get(Object key):根据键获取值
 *  Set<K> keySet():获取集合中所有键的集合
 *  Collection<V> values():获取集合中所有值的集合
 * 5:长度功能
 *  int size():返回集合中的键值对的对数
 */
public class MapDemo {
public static void main(String[] args) {
// 创建集合对象
Map<String, String> map = new HashMap<String, String>();

// 添加元素
// V put(K key,V value):添加元素。这个其实还有另一个功能?先不告诉你,等会讲
// System.out.println("put:" + map.put("文章", "马伊俐"));
// System.out.println("put:" + map.put("文章", "姚笛"));

map.put("邓超", "孙俪");
map.put("黄晓明", "杨颖");
map.put("周杰伦", "蔡依林");
map.put("刘恺威", "杨幂");

// void clear():移除所有的键值对元素
// map.clear();

// V remove(Object key):根据键删除键值对元素,并把值返回
// System.out.println("remove:" + map.remove("黄晓明"));
// System.out.println("remove:" + map.remove("黄晓波"));

// boolean containsKey(Object key):判断集合是否包含指定的键
// System.out.println("containsKey:" + map.containsKey("黄晓明"));
// System.out.println("containsKey:" + map.containsKey("黄晓波"));

// boolean isEmpty():判断集合是否为空
// System.out.println("isEmpty:"+map.isEmpty());

//int size():返回集合中的键值对的对数
System.out.println("size:"+map.size());

// 输出集合名称
System.out.println("map:" + map);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-24
展开全部
楼主还是多看看JDK的API,只要是键-值对集合 Map 接口的所有实现类都可以完成你说的效果: 一般情况下,用HashMap, Hashtable的最多。HashMap是非线程安全的, Hashtable是线程安全的。如果你不熟悉,看JDK的API就能解决问题。JDK的API手册可以在 http://www.gougou.com或百度、谷歌里面去搜索下载。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-04-24
展开全部
Hashmap 可以保存2个对象,用键值对的方式保存。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
指尖流过沧桑丶
推荐于2018-03-07 · 超过14用户采纳过TA的回答
知道答主
回答量:52
采纳率:100%
帮助的人:16.2万
展开全部

List就可以啊。

User user=new User();
User2 user2=new User2();
List<Object> list =new ArrayList<Object>();
list.add(user);
list.add(user2);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式