1存取的(遍历)方式:Map 两种
set 两种
List常用三种,一共五种(接口List 还有listIterator(),Object[] toArray() 把toArray()转变Object[]数组再循环遍历(day17) )
Map 两种:遍历:
* 方式1:
* 通过获取所有丈夫的集合。keySet
* 遍历Set集合,获取到每一个丈夫。迭代器
* 通过丈夫找妻子。get
*
* 方式2:
* 获取的是结婚证的集合。entrySet
* 遍历Set集合,获取到每一个结婚证。迭代器
* 对着结婚证念名字。getKey,getValue
set 两种:遍历方式:
* 1:迭代器
* 2:增强for
* 3: toArray(T[] a) (不常用)
List常用三种,一共五种: List体系取出数据的方式:
* 1:迭代器
* 2:普通for循环
* 3:增强for循环
* 4: toArray(T[] a) (不常用)
* 5: listIterator(int index)(十分不常用)
2:习惯
讲课:总结掌握:知道,看懂,并自己独立写出来。
理解:知道并能看懂我写的代码。
了解:知道就可以了。
每天把掌握的内容要做完。
在把理解的内容和了解的内容看看。
每3到5天,复习前面的知识点一次。
3:知识体系
java编程基础:掌握
面向对象:掌握
多线程:理解
API中常用类:掌握
集合:掌握
IO:掌握
GUI:了解
网络编程:理解
网页设计(html+css+js):掌握
4:程序回顾
A:HelloWorld程序
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("HelloWorld");
}
}
B:在一个类中写两个方法,一个主方法(main),一个普通方法(compare),
这个普通方法用于比较两个数(int)是否相等。数据直接写固定的。
public class Compare
{
public static void main(String[] args)
{
boolean flag = compare(10,20);
System.out.println("是否相等:"+flag);
}
public static boolean compare(int a,int b)
{
return a==b;
}
}
C:写两个类,一个GetMax类,一个Test类,在GetMax类中写一个方法getMax,
返回三个整数(int)中最大的值。然后在Test类中进行测试。
public class Test
{
public static void main(String[] args)
{
GetMax gm = new GetMax();
int max = gm.getMax(20,30,10);
System.out.println("最大值是:"+max);
}
}
public class GetMax
{
public int getMax(int a,int b,int c)
{
return (a>b)?(a>c?a:c):(b>c?b:c);
}
}
5:集合知识回顾
集合:存储对象的容器。
特点:长度可变,任意类型的对象。
Collection:add,remove,contains,size,iterator
|--List:元素有序(存入顺序和取出顺序),可重复。
get,listIterator
|--ArrayList
底层数据结构是数组,查询快,增删慢。(什么是数据结构:数据结构是组织数据的方式)
线程不安全,效率高。
|--LinkedList
底层数据结构是链表,查询慢,增删快。
线程不安全,效率高。
|--Vector
底层数据结构是数组,查询快,增删慢。
线程安全,效率低。
|--Set:元素无序,不可重复。
|--HashSet
底层数据结构是哈希表。
如何保证元素的唯一性呢?
它依赖hashCode方法和equals方法。
|--LinkedHashSet
|--TreeSet
底层数据结构是二叉树。
如何保证元素的唯一性呢?
两种方式:
对象具备比较性:Comparable (含有compareTo(T o) 实现)
集合具备比较性:Comparator (含有这个构造器)
Map:键值对方式存储数据。键不可以重复,值可以重复。
put,get,size,keySet,entrySet,values,remove
|--HashMap
|--TreeMap
练习:
用ArrayList存储自定义对象(Person:name,age)。并加泛型。
存3个Person,并遍历。
思路:
集合就是为了存储数据。遍历数据。
步骤:
创建集合对象
创建元素对象
把元素对象添加到集合对象中
遍历集合
通过迭代器
通过集合对象获取到迭代器对象
调用迭代器的hasNext方法判断是否还有元素
调用迭代器的next方法取出元素
集合使用总结:
是键值对形式的吗?
|--是:Map
|--需要排序吗:
|--需要:TreeMap
|--不需要:HashMap
如果不知道使用哪个Map,就是用HashMap。
|--不是:Collection
|--保证元素唯一吗?
|--保证 Set
|--需要排序吗:
|--需要:TreeSet
|--不需要:HashSet
如果不知道使用哪个Set,就是用HashSet。
|--不保证 List
|--需要考虑线程问题吗?
需要:Vector(一般也不用。用Collections下面的方法)
不需要:
|--主要用于查询 用ArrayList
|--主要用于增删 用LinkedList
如果不知道使用哪个List,就使用ArrayList。