标签:class 教师 构造 通过 import 返回 weight bottom value
挺多的,整理用了很长时间,外加理解。
1、集合概述
- 这些接口和类大致分为3层
- 第一层是接口,包括:Conllection接口、List接口、Set接口和Map接口。
- 第二层是抽象类,AbstractConllection、AbstractList、AbstractSet、AbstractMap。方便第3层的使用
- 第三层是实际要使用的类
2、Collection接口
- 最顶层的接口就是Collection
- (1)第一类方法,向集合中添加对象
public boolean add(Object o),添加一个元素
public boolean addAll(Collection c),添加多个
public boolean remove(Object o),删除指定元素
public boolean addAll(Collection c),删除多个
public void clear(),删除所有
public boolean retainAll(Collection c),只保留部分
public boolean isEmpty,判断集合是否为空
public boolean contains(Object o),判断是否包含
public boolean containsAll(Collection c),包含多个
public int size(),集合中元素的个数
public Iterator iterator(),转换成迭代器
publicObject[] toArray(),转换成集合
public boolean equals(Object o),判断是否与另外的一个对象相同
publicinthashCode(),放回集合的哈希码。
public void clear(),删除所有
public boolean retainAll(Collection c),只保留部分
这里没有提供修改的元素,因为在集合里面没有顺序,没有办法定位要修改哪一个
3、Set接口
- Set接口表示集合,元素不重复,与Collection接口基本一致,方法与Collection完全相同
- SortedSet继承了Set接口,元素按升序排列(大小的有序)。
- (1)第一类方法,得到相关的Comparator对象
public Comparator comparator(),返回comparator对象
public SortedSort subSet(Object fromElement,Object toElement),
public SortedSet headSet(Object toElement)
public Sortedert tailSet(Object fromElement)
public Object first()和 public Object last()
4、List接口
- List接口继承Collection接口,元素是有序的(先后位置的有序),所以多了一些与顺序相关的方法
publicvoid add(int index,Object o)
public boolean addAll(int index,Collection c)
public Object remove(int index)
public Object get(int index)
public List subList(int fromIndex,int toindex)
public int indexOf(Object o)
public int lastIndexOf(Object o)
public Object set(int index,Object o)
public Listlterator listlterator()
public Listlterator listlterator(int index)
List与Set相比,主要是增加了元素之间的顺序关系,并且允许元素重复。
5、Map接口
- 它的每个元素包括两个部分:键(key)和值(Value)。同一个Map对象中不允许使用相同的键,但是允许使用相同的值。所以Map接口隐含的有3个集合:键的集合、值的集合和映射的集合。
- (1)第一类方法,添加元素的方法:
public Object put(Object key,Object value),添加一个
public void putAll(Map m),添加多个元素
public Object get(Object key)
public Object remove(Object key)
public Set entrySet(),获取映射的集合
public Collection values(),获取值的集合
public Set keySet(),返回所有键名的集合
- (5)第五类方法,是否存在指定的Key和Value
public boolean containsValue(Object value)
public boolean containsKey(Object key)
- Map中的元素是无序的,SortedMap接口有序
6、Iterator接口和Enumeration接口
- Iterator接口和Enumeration接口的作用类似,在Java1.2中使用了Iterator代替了Enumeration
- Enumeration的方法
boolean hasMoreElements()
E nextElement()
next()方法用于得到下一个元素
remove用于删除元素
7、HashSet类
- 元素无序,值可以是null,主要方法:
- (1)构造方法
public HashSet();
public HashSet(Collection<?extends E>c);
public HashSet(int initialCapacity);
public HashSet(int initialCapacity,float loadFactor);
public boolean add(Object o),添加指定的元素
public boolean addAll(Collection c),添加多个
例如:set3.add("元素5");
public boolean remove(Object o),删除一个
public boolean removeAll(Collection c);删除多个
public void clear(),删除所有元素
public boolean retainAll(Collection c),保留部分
例如:set1.remove("元素3")
public boolean contains(Object o), 是否存在
public Iterator iterator(),转换成迭代器
public Object[] toArray(), 转换成集合
使用HashSet
8、TreeSet类
- TreeSet能够对加入的元素进行排序
- 构造方法:
public TreeSet(), 创建爱你一个空的集合,自然顺序
public TreeSet(Collection<? extends E> c)
public TreeSet(Collection<? super E> comparator)
public TreeSet(SortedSet<E> s)
9、ArrayList类
- ArrayList是以数组方式实现的链表,是非同步的,构造方法有3种:
- ArrayList(),构造一个初始化为10的空的链表
- ArrayList(Collection<? extends E> c),使用1个已经存在的集合构造一个链表
- ArrayList(int initialCapacity),指定初始化空间
- 练习一下构造ArrayList对象
- (1)向集合中添加对象的方法。
- public void add(int index,Object o)
- public boolean addAll(int index,Collection c)
- public boolean add(Object o)
- public boolean addAll(Collection c)
- 例如:list1.add("user3");
- (2)删除元素
- public boolean remove(int index,Object o),删除指定元素
- public boolean removeAll(Collection c),删除多个
- public void clear(),删除所有
- public boolean retainAll(Collection c),
- public Object remove(int index)
- (3)获取某个元素或者获取某些元素
- public Object get(int index)
- public List subList(int fromIndex,int toIndex)
- (4)查找某个元素
- public int indexOf(Object o)
- public int lastIndexOf(Object o)
- public boolean isEmpty()
- public boolean contains(Object o)
- public boolean containsAll(Collection c)
- public int size()
- (5)修改元素的方法
- public Object set(int index,Object o)
- (6)转换成其他对象
- public ListIterator listIterator()
- public ListIterator listIterator(int index)
- public Iterator iterator()
- public Object[] toArray()
- (7)ArrayList的遍历
方法一:
for(int i = 0;i<list1.size();i++){
System.out.println(lixt1.get(i));
}
方法二:
Object o[] = list1.toArray();
for(int i = 0;i<o.length;i++){
String temp = (String)o[i];
System.out.println(temp);
}
方法三:
Iterator<String> i = list1.iterator();
while(i.hasNext()){
String temp = i.next();
System.out.println(temp);
}
for(int i = 0;i<list1.size();i++ System.out.println(lixt1.get(iObject o[] = list1.toArrayfor(int i = 0;i<o.length;i++ String temp = (String)o[i System.out.println(tempIterator<String> i = list1.iteratorwhile(i.hasNext String temp = i.next() System.out.println(temp实例:使用ArrayList实现学生信息管理系统
10、LinkedList类
- LinkedList类的用法与ArrayList类似。ArrayList是采用数组方式实现的List,而LinkedList是采用链表方式实现List,前者采用连续存储空间,后者采用非连续存储空间。如果集合元素在生成后变化不大,使用ArrayList,如果数据经常发生变化,应该使用LinkedList。
11、Vector类
- Vector类的用法与ArrayList非常类似。会随着元素的变化调整自身的容量。提供了4种与ArrayList类似的构造函数。
- Vector也实现了List接口,和ArrayList的功能基本类似,采用数组来实现。不同的是Vector支持同步,在非多线程环境下面使用ArrayList。
12、Hashtable类
- 实现了Map接口,是同步的哈希表,不允许类型为null的键和值。用于存储映射关系。
- Hashtable中的常用方法都是继承自Map接口。
13、HashMap类
- HashMap是基于Hash表的Map接口的实现,允许mull值和null键。与HashMap用法相同,只是HashMap不支持同步。HashMap不能保证元素的顺序。方法参见Map接口。
- 第一种遍历方式:
Object[] o = map.entrySet().toArray();
Map.Entry x;
for(int i = 0;i<map.size();i++){
x = (Map.Entry)o[i];
Object key = x.getKey();
Object value = x.getValue();
}
Object[] o = map.entrySet().toArray();
for(int i = 0;i<map.size();i++){
Object value = map.get(o[i]);
}
14、TreeMap类
- TreeMap是按照树的方式组织数据,查询的速度比较快,在添加数据的时候会对数据进行排序,根据key的自然顺序排序,用法和HashMap类似。
15、Properties类
- Properties类表示一组属性,Properties对象的属性信息可以写入到输出流,也可以从输入流加载。Properties中的key和value都是字符串。添加属性信息的时候应该使用setProperties方法
- 主要方法如下:
- public Enumeration<?>prooertyNames()
- public synchronized void load(InputStream inStream) throws IOException
- public synchronized Object setprooerty(String key,String value)
- public void list(PrintStream out)
- public void store(OutputStream out,String comments) throws IOException
- public void store(Writer writer,String comments) throws IOException
- Properties可以通过load和store方法从文件中加载属性或者把属性写入到文件中,属性文件的格式为:属性名=属性值
16、Comparable接口
- 如果某个类型实现Comparable接口,就可以通过sort方法对数组排序了
- Comparable接口定义了compareTo方法,参数另外一个要比较的对象
- Comparable接口的使用
17、Comparator接口
- Comparator接口表示比较器,例如要对教师对象进行排序,可以根据年龄排序,可以根据部门排序,可以根据入职时间排序,每一种排序方法都可以实现为一个比较器
- 实现Comparator接口,需要实现compare方法,方法有两个参数,分别表示要比较的两个对象,方法的返回值是int
- 例子:采用多种方式对学生进行排序
Java集合框架
标签:class 教师 构造 通过 import 返回 weight bottom value
原文地址:http://www.cnblogs.com/jichui/p/7781660.html