本周总结
集合
Java集合大致可以分为Set、List、Map三种体系,
其中Set代表无序、不可重复的集合;List代表有序、重复的集合;Map则代表具有映射关系的集合。
.set集合 应用示例
Set集合与Collection基本上完全一样,它没有提供任何额外的方法。实际上Set就是Collection,只是行为略有不同。(Set不允许包含重复元素)。
Set集合不允许包含相同的元素,如果试图把两个相同的元素加入同一个Set集合中,则添加操作失败。
1)HashSet类
(1)HashSet是Set接口的实现。HashSet按Hash算法来存储集合中的元素,具有很好的存取和查找性能。
(2)HashSet不能保证元素的排列顺序,顺序可能与添加顺序不同,顺序也有可能发生变化。
(3)当向HashSet集合中存入一个元素时,HashSet会调用该对象的hashCode()方法来得到该对象的hashCode值,然后根据该HashCode值决定该对象在HashSet中的存储位置。如果有两个元素
通过equals()方法比较返回true,但它们的hashCode()方法返回值不相等,HashSet将会把它们存储在不同的位置,依然可以添加成功。即,HashSet集合判断两个元素相等的标准是两个
对象通过equals()方法比较相等,并且两个对象的hashCode()方法返回值也相等。
package jihe; import java.util.HashSet; import java.util.Iterator; public class TestHashSet { public static void main(String[] args) { /** *1. HashSet 无序 * 2.不允许重复值 */ HashSet<String> hs=new HashSet<String>(); hs.add("1"); hs.add("2"); hs.add("3"); hs.add("4"); hs.add("5"); /** * yong Iterator 遍历集合 */ Iterator<String> it=hs.iterator(); while(it.hasNext()) { String s=it.next(); System.out.println(s+" "); } } }
输出值为1 2 3 4 5
2.Map 集合应用
(1)HashMap实现算法是哈希表,实现的数据结构是链表与数组。
package jihe; import java.util.HashMap; import java.util.Iterator; public class TestHashMap { public static void main(String[] args) { HashMap<String,Student> hashMap=new HashMap<String,Student>(); hashMap.put("1号", new Student("张三",10)); hashMap.put("2号", new Student("李四",20)); hashMap.put("3号", new Student("王五",30)); //通过key,获取value Student s= hashMap.get("1号"); System.out.println(s.getName()+":"+s.getAge()); //遍历集合 Iterator<String> it=hashMap.keySet().iterator(); //获取key的集合,获取迭代器 while(it.hasNext()) { String key=it.next(); Student student=hashMap.get(key); System.out.println("key="+key+" value={"+student.getName()+","+student.getAge()+"}"); } } }
输出结果:
张三:10
key=3号 value={王五,30}
key=2号 value={李四,20}
key=1号 value={张三,10}
HashMap.put() 为数据标号,在调用的时候可以直接用get()调用所标的号码,直接输出数据。
java 常用方法:
)Collection接口是List、Set和Queue接口的父接口,该接口里定义的方法既可以用于操作Set集合、也可以用于操作List集合和Queue集合。
boolean add(Object o):该方法用于向集合里添加一个元素。
boolean addAll(Collection c):该方法把集合c里的所有元素添加到指定集合里。
void clear():清除集合里的所有元素,将集合长度变为0。
boolean contains(Object o):返回集合里是否包含指定元素。
boolean containsAll(Collection c):返回集合里是否包含集合c里的所有元素。
boolean isEmpty():返回集合是否为空。当集合长度为0时返回true,否则返回false。
Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素。
boolean remove(Object o):删除集合中的指定元素o,当集合中包含了一个或多个元素o时,这些元素将被删除,该方法将返回true。
boolean removeAll(Collection c):将集合中删除集合c里包含的所有元素(相当于用调用该方法的集合减集合c),如果删除了一个或一个以上的元素,则该方法返回true。
boolean retainAll(Collection c):将集合中删除集合c里不包含的元素(相当于把调用该方法的集合变成该集合的集合c的交集),如果该操作改变了调用该方法的集合,则该方法返回true。
int size():该方法返回集合里元素的个数。
Object[] toArray():该方法把集合转换成一个数组,所有的集合元素变成对应的数组元素。
Iterator接口遍历集合元素
Iterator接口也是Java集合框架的成员,主要用于遍历Collection集合中的元素,Iterator对象也被称为迭代器。
Iterator接口里定义了如下三个方法:
boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true。
Object next():返回集合里的下一个元素。
void remove():删除集合里上一次next方法返回的元素。
本周总结:系统学习了Set集合,Map集合,LinkedList集合,ArrayList集合,Foreach集合还有Iterator集合等,让我对Java的简便有了很大认识,基本所以的类方法都可以找到,例如学习信息管理系统的实现,使用LinkedList就可以实现大部分功能,相较于C++与C语言,省略了很多的编写模板代码的时间,这对于追求效率的企业来说很有帮助,Java也无愧于前三甲的使用率。