《Java知识点总结系列》第十一章集合篇Word文件下载.docx
《《Java知识点总结系列》第十一章集合篇Word文件下载.docx》由会员分享,可在线阅读,更多相关《《Java知识点总结系列》第十一章集合篇Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
booleanisEmpty();
booleanremove(Objecto);
voidclear();
intsize();
Iteratoriterator();
//遍历
Objectget(intindex);
1.ArrayList是List接口的实现类
importjava.util.*;
Listl=newArrayList();
从0开始
2.Iterator遍历
Iteratori=List.iterator();
publicbooleanhasNext();
publicObjectnext();
//指针往下走一格
3.List排序
a)voidCollections.sort(List);
//默认升序
自动排序阿拉伯字母1-9,字母:
a-z,A-Z,字符串比较首字母,相同比较第二个,以此类推。
b)对Student类进行排序//出现异常,不知道排序规则
c)
Comparable接口
publicintcompareTo(){
当前对象排序的属性值<
给定对象对应属性的值return负数
当前对象排序的属性值==给定对象对应属性的值return0
当前对象排序的属性值>
给定对象对应属性的值return正数
负零正(升序)正零负(降序)
}
eg:
returnthis.age–age;
[java]
viewplaincopy
1.package
chp11.ex06;
2.
3.import
java.util.ArrayList;
4.import
java.util.Collections;
5.import
java.util.Iterator;
6.import
java.util.List;
7.
8./**
9.
*
10.
@Author:
Wentasy
11.
@FullName:
TestList2.java
12.
@Description:
对象排序
实现Comparable接口
重写compareTo方法
13.
@Create
Date:
2012-8-15
14.
*/
15.class
Student
implements
Comparable{
16.
private
String
name;
17.
int
age;
18.
19.
public
Student(String
name,int
age){
20.
21.
this.name
=
22.
this.age
23.
}
24.
25.
void
setName(String
name){
26.
27.
28.
29.
getName(){
30.
return
this.name;
31.
32.
33.
setAge(int
34.
35.
36.
37.
getAge(){
38.
this.age;
39.
40.
41.
/*
42.
compareTo(Object
o)
{
43.
当前对象排序的属性值
<
给定对象对应属性的值
负数
44.
==
0
45.
>
正数
46.
47.
48.
49.
50.
51.
o){
52.
s
(Student)o;
53.
pareTo(s.getName());
54.
55.
56.
57.
58.
59.
60.
61.
62.
if(this.age<
s.age)return
-1;
63.
else
if(this.age
0;
64.
1;
65.
66.
67.
68.
69.
70.
71.
72.
this.age-s.age;
73.
74.
75.}
76.
77.public
class
TestList2
78.
static
main(String
args[]){
79.
s1
new
Student("
sun2"
20);
80.
s2
sun1"
10);
81.
s3
sun3"
30);
82.
l
ArrayList();
83.
l.add(s1);
84.
l.add(s2);
85.
l.add(s3);
86.
87.
Collections.sort(l);
88.
89.
Iterator
i
l.iterator();
90.
while(i.hasNext()){
91.
(Student)i.next();
92.
System.out.println(s.getName());
93.
94.
95.}
d)
String+8种包装类默认已经实现了Comparable接口
e)List排序原理
Comparable接口达成了使用者和提供者之间的约定
4.List接口的实现类
a)ArrayList和LinkedList
b)ArrayList和Vector
Set接口
1.Set接口
1.
HashSet:
无顺序
不可重复
元素对应的对象的内容不可重复
3.HashSet怎样存储对象
a)Object类中定义了publicinthashCode();
b)HashSet怎样存储对象
调用hashCode
当hashCode值满足条件时,再调用equals方法
c)
hashCode:
决定一个对象放在哪个桶(内存)里
d)对象内容相同,hashCode值相同,放在同一桶里,把重复数据过滤掉(覆盖)
4.hashCode方法的覆盖建议
publicinthashCode(){
returnage;
returnname.hashCode()&
1;
//字符串已经覆盖了hashCode()
1.
SortedSet接口的实现类
2.
可以排序,不可重复
3.
元素必须实现Comparable接口
4.
所有的Set接口的实现类对重复元素的处理不同
chp11.ex11;
java.util.Set;
java.util.TreeSet;
6.
TestSet2.java
TreeSet
compareTo方法的重写优化
if(this.age!
=s.age)return
-
s.age;
pareTo(s.name);
48.}
50.public
TestSet2
s4
set
TreeSet();
set.add(s1);
set.add(s2);
set.add(s3);
set.add(s4);
set.iterator();
69.}
5.
TreeSet过滤重复是以compareTo方法中判断两个内容是否相等作为判断重复数据的依据
Collection接口
Map接口
java.util.Map接口
key不可以重复,value可以重复
put(Objectket,Objectvalue);
get(Obejctkey);
remove(Objectkey);
clear();
isEmpty();
size();
HashMap的常规使用
Mapm=newHashMap();
HashMap的key也是通过Hash算法过滤重复数据
覆盖equals方法和hashCode
Map的key一般都应用String
3.Map的遍历
值遍历
chp11.ex13;
java.util.Collection;
java.util.Map;
java.util.TreeMap;
TestMap1.java
值遍历
15.public
TestMap1
m
TreeMap();
m.put("
key1"
"
value1"
);
key3"
"
value2"
value4"
key2"
Collection
c
m.values();
c.iterator();
System.out.println(i.next());
30.}
b)键遍历
TestMap2.java
键遍历
TestMap2
m.keySet();
ii
s.iterator();
while(ii.hasNext()){
System.out.println(ii.next());
31.}
c)键值遍历
chp11.ex14;
java.util.HashMap;
java.util.Hashtable;
7.import
8.
9./**
键值遍历
15.
16.public
HashMap();
25.//
26.//
27.//
28.//
29.//
Object
key
ii.next();
30.//
System.out.println(key+"
+m.get(key));
31.//
//
错误的遍历方式
每调用一次next
指针往前移
System.out.println(ii.next()+"
+m.get(ii.next()));
44.}
1.TreeMap可以对key应用排序
TreeMap的key是通过Comparable接口过滤重复排序
3.Map的key一般都应用String
HashMap与HashTable
集合关系(5.0以前)
Object