集合总结[java]

来源:互联网 发布:全球淘宝下载 编辑:程序博客网 时间:2024/06/15 14:28
1.有一个集合是一个类manager的成员变量 private List<String> list,在另一个类test中,对manager创建对象了两次,如果想要这两个创建对象使用同一个集合list,那么就得使这个集合是静态的,用static修饰


2.set集合的特点:无序,不可重复


3.HashSet是set集合的子集,特点:唯一,无序
HashSet集合存储自定义对象并遍历。如果对象的成员变量相同即为同一个对象集合存储自定义对象并遍历。如果对象的成员变量相同即为同一个对象
HashSet集合的底层是哈希表结构,而哈希表结构底层依赖HashCode()和equals()方法。如果你认为对象的成员变量值相同即为同一个对象的话,应该重写这两个方法,自动生成即可。


4.LinkedHashSet是HashSet的子集,特点:有序,唯一
因为他的底层是哈希表和链表,哈希表保证了唯一性,而链表则保证了有序性


5.TreeSet:能够对元素按照某种规则进行排序。
排序有两种方式 A:自然排序B:比较器排序
TreeSet的特点:排序和唯一
创建无参构造的TreeSet对象的排序方式是自然排序


TreeSet排序方式:TreeSet是构造了一个二叉树,如果大于就在右子数,小于就在左子树,等于就不用管
A:自然排序
自定义:创建集合对象时是无参构造
如果一个类进行自然排序,那么这个类就要实现自然排序的接口Compareable
B:比较器排序
自定义:创建集合对象时是带参构造,参数是new 自定义的类(),这个自定义的类要实现Comparator接口


在自定义存储中无论是自然排序还是比较器排序重写compareTo方法时,都是不紧要比较首要条件也要比较次要条件


Map集合:
map集合的数据结构值针对键有效,跟值无关


Map集合的功能概述:
添加功能
V put(K key,V value):添加元素
如果是第一次存储,就直接存储元素,返回null
如果不是第一次存储,就用值把以前的值替换掉,返回以前的值
删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
获取功能
Set<Map.Entry<K,V>> entrySet():???
V get(Object key):根据键获取值
Set<k> keySet():获取集合中所有键的集合
Collection<V> value():获取集合中所有值的集合
长度功能:
int size():返回集合中的键值对的对数


HashMap遍历:
两种:
1.获取所有的键的集合,set,根据键获取值

Map<String, String> map = new HashMap<>();map.put("文章", "姚笛");map.put("黄晓明", "Baby");map.put("大黑牛", "范冰冰");map.put("张杰", "谢娜");Set<String> set = map.keySet();for (String s : set) {System.out.println(s+"--"+map.get(s));}

2.获取每一个键值对,然后获取相应的键和值

Map<String, String> map = new HashMap<String, String> () ;map.put("张杰", "谢娜");map.put("周杰伦", "昆凌");map.put("黄晓明", "杨颖");map.put("李晨", "范冰冰");map.put("邓超", "孙俪");Set<Map.Entry<String, String>> set = map.entrySet();for (Entry<String, String> entry : set) {String key = entry.getKey();String value = entry.getValue();System.out.println(key+"---"+value);}



0 0
原创粉丝点击