java基础第20天



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。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值