3758人加入学习
(12人评价)
Java编程学习第三季

制作完成于2018年5月10日 使用JDK 8

价格 免费

HashMap和TreeMap用法都一样,只是存储结构不一样。

键值对的键必须使用数据类型的封装类型(假如是int,要用Integer)

HashTable与HashMap用法几乎一致,区别就是线程安全性问题:前者较安全,性能略低。

[展开全文]

1.HashMap集合类;//HashMap里面保存的是键值对(一个键对应一个值)

HashMap map=new HashMap();

通过get得到siki这个键,进而得到56这个值(把这个值传递过来)//通过key取得value

所以:key不能相同。但是:value可以相同。一旦key相同,会把前面key所对应的value取代掉。

2.map.keySet();//会把map的所有key得到放在set里面

把所有的value输出来都可以:

———————————————————

凡是返回类型是set类型,值value是不可以重复(一旦重复系统就会自动去重或实现替换(HashMap)),返回类型是collection类型可以重复(ArrayList\Vector\LinkedList)。

[展开全文]

集合存储ArrayList自定义类的类型数据Student

遍历的时候因为里面都是student类型,所以:

for(student temp:al){}

[展开全文]

TreeSet:也是无序,不重复。

 

[展开全文]

HashSet集合类;

HashSet set=new HashSet();

 

集合类里:

ArrayList\LinkedList\Vector可以添加重复数据,有序的(按照添加顺序排序);

但是,HashSet不可以添加重复数据,无序。(一旦添加了重复数据,内部系统会自动进行去chong)

[展开全文]

因为每次进行数值运算都要对非int类型数据进行强制类型转换,所以引入了泛型:

ArrayList<Integer>al=new ArrayList<Integer>();//声明了该集合只能存储Integer类型:int类型,所以传递数据的时候也只能传递int类型数据。

 

[展开全文]

LinkedList跟Victor和ArrayList用法没区别,不过多了在数组的前、末尾添加数据的两个方法。

[展开全文]

用法跟ArrayList一样,区别在于线程安全:

Victor的线程安全好于ArrayList

[展开全文]

1.遍历数组:i<oArray.length

遍历集合:i<ArrayList.size

2.遍历还可以获取一个遍历器:

al.iterator();//因为它返回的是iterator对象,所以我们定义一个iterator去接收它。

Iterator iterator=al.iterator();

3.iterator.next();//会在每次调用完一个对象后,调用下一个对象。

4.加强版for循环遍历:

for(Object o:al){

System.out.println(o);}

[展开全文]

1.al.remove(1);//把索引为1的数据删除

al.remove("小明");//把小明这个数据删除

2.System.out.println(al.isEmpry());

System.out.println(al.isContains(""));

3. 

把一个集合类转换成数组类型。

4.因为ArrayList里面的数组都是object类型,get返回的是object类型,故不能直接做运算:

[展开全文]

1.把一个集合传递给另一个集合:

ArrayList al=new ArrayList();

ArrayList al2=new ArrayList();

al.addAll(al2);

2.al.add(0,""Jack);//把Jack添加到索引为0的位置,原索引为0的数据索引变成1。

3.for(int i=0;i<al.size();i++){}//对集合里面的数据进行遍历

System.out.print(al.get(i)+" ");

 

[展开全文]

数组在创建的时候需要指定数组长度,但是ArrayList在创建的时候并不需要指定长度:

ArrayList a1=new ArrayList();

a1.add(“小明”);//索引为0的时候输出的值

a1.add(“小红”);//索引为1的时候输出的值

System.out.println(a1.get(0));

[展开全文]

OutputStreamwriter//OutputStreamwriter是包装流

 

IntpurStreamreader

[展开全文]

       第三章任务51

BufferedInputStream(缓冲区输入流)

BufferdeOutPutStream(缓冲区输出流)

while((data=input.read())!=-1)){ output.write(data); }//复制

while((length =input.read(data))!=-1){ output,write(data,0,length); }//拷贝

currentTimeMills()//获取拷贝时间

[展开全文]

缓冲区数据写到硬盘上的三种情况:

1、缓冲区满的时候(一般不会满)

2、当调用close的时候

3、当调用刷新缓冲区之后

 

写了缓冲区之后,数据不会直接写到里面,会先写进缓冲区

[展开全文]

输入输出流

一般只用效率高的数组方式

而字节方式一般了解就行

109和1毫秒,当然是数组效率更高

 

设置数组范围1024效率是46毫秒

设置数组范围2048效率是19毫秒

[展开全文]

一般是使用while循环条件来判断,比较简洁

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(65)