本周总结

集合

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也无愧于前三甲的使用率。