黑马程序员 _集合框架,以及泛型
来源:互联网 发布:qqiphone6s在线软件 编辑:程序博客网 时间:2024/05/21 18:50
------- android培训、java培训、期待与您交流! ----------
1、StringBuffer 线程安全,线程同步 StringBuilder 线程不同步,运行效率比StringBuffer高
2、程序升级三个要素:提高效率、简化书写、提高安全性
以后开发建议使用StringBuilder
3、String s1="abc"; //s1 是一个类的类型变量, “abc”是一个对象 ;被引号引的都是对象
String s2=new String("abc"); // s2 在内存中有两个对象4、Integer a=128; Integer b=128; a==b false
Integer m=127; Integer n=127; m==n true //因为m和n指向了同一个Integer对象。因为当数值在byte范围内,对于新特性,
如果 该数值已经存在,则不会在开辟新的空间。
5、排序时,当主要条件相同是,一定判断一下次要条件
TreeSet :底层数据结构是二叉树,保证元素唯一性的依据。cpmpartTo方法return 0
TreeSet排序的两种方式:
(1)比较的元素都实现comparable 接口,让元素自身具有比较性
(2)定义比较器。
(3)当两种方式都存在是,以比较器为主。
6、for(Iterator it=al.iterator();it.hasNext();){
sop(it.next());
}
源码中的写法;这种写法可以减少内存的占用量7、List:元素时有序的,元素可以重复,因为该集合体系有索引
ArrayList :底层的数据结构使用的是 数组。特点:查询速度很快。但是增删稍慢 线程不同步LinkedList:底层使用的是 链表数据结构。 特点:增删速度快,查询稍慢
Vector:底层的数据结构使用的是数组。 线程同步。被ArrayList替代了
Set:HashSet:底层的数据结构使用的是 哈希表。
8、一个对象存放到对象集合中一般需要复写hashCode和 equals方法
public int hashCode(){
return name.hashCode()+age*39;
}
public equals(Object obj){
if(!(obj instanceof Student))return false;
Student stu=(Student)obj;
return this.name.equals(stu.name) && this.age==stu.age;
}9、泛型类
什么时候定义泛型类?
当类中要操作的引用数据类型不确定的时候,定义泛型来完成扩展。
class Utils<Q>
{
private QQ q;
public void setObject(QQ q){this.q=q;}
Public void getObject(){return q;}
}
10、泛型方法
class Demo<U>
{
public void show(U u){
System.out.println(u);
}
}(2)泛型方法 ,范围更广 注意:泛型的位置的放置
class Demo<U>
{
public void print(U u){
System.out.println(u);
}public <T> void show(T t){
System.out.println(t);
}//泛型的静态方法
public static <W> void(W w){
System.out.println(w);
}
}
11、泛型定义在接口上
interface Inter<T>{
void show(T t);
}
(1)第一种:
class Demo implments Inter<String>{
public void show(String s){}
}
(2)第二种:
class Demo<T> implements Inter<T>
{
public void show(T t){}
}12、HashMap和Hashtable的区别:
(1)Hashtable 底层是哈希表数据结构 。不可以存入null键null值,该集合是线程同步的 jdk 1.0 效率低
(2)HashMap 底层是哈希表数据结构 。允许使用null值和null键,该集合是不同步的 jdk 1.2 效率高
(3)TreeMap 底层是二叉树数据结构
------- android培训、java培训、期待与您交流! ----------
详细请查看:http://edu.csdn.net/heima/
- 黑马程序员 _集合框架,以及泛型
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- 黑马程序员_集合框架
- Dreamweaver CS5之旅(一)设置页面属性
- IOS 常用网站
- android fih-mms的实现
- android权限大全
- A Great HTML Parser-Html Agility Pack
- 黑马程序员 _集合框架,以及泛型
- asp.net 中实时显示本地时间
- 【写给自己】从今天起,开始写博客吧。
- 模拟Iphone 样式的 AlertDialog
- 《Red5 用户参考手册》之五:入门第四章 Red5 的类库
- c++默认实参 省略实参
- ==和equals()区别(操作符==与对象equals方法的不同)
- HTML 标签 介绍
- 一步一步学JBPM(2)——JPDL流程定义语言