`
yangxiao1995
  • 浏览: 1000 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java基础的一些东西

阅读更多

1,分析:HashMap  TreeMap 键怎么做到唯一的,不重复的  

     HashMap判断键唯一的方式与HashSet是一样

     当我们使用Map集合,添加自定义了对象[元素],注意判断元素唯一,

  HashMap需要:自定义元素的类,中,需要覆写hashCode equals

    HashMap 代码示例:

    public static void main(String[] args) {

             HashMap hmp = new HashMap();

             Student stu1 = new Student("小明",10);

             Student stu2 = new Student("小明",20);

             hmp.put(stu1, 18);

             hmp.put(stu2, 18);

             System.out.println(hmp.size());

             System.out.println(hmp);

}

       class Student{

          int age; 

          String name;

          public Student(String name,int age) {

              super();

              this.name = name;

              this.age = age;

    }

//@Override

//public int hashCode() {

//

return 0;

//}

//@Override

//public boolean equals(Object obj) {

//return false;

//}

 

 

@Override

public String toString() {

// TODO Auto-generated method stub

return name+"-"+age;

}

 

 

@Override

public int hashCode() {

final int prime = 31;

int result = 1;

result = prime * result + age;

result = prime * result + ((name == null) ? 0 : name.hashCode());

return result;

}

 

 

@Override

public boolean equals(Object obj) {

if (this == obj)

return true;

if (obj == null)

return false;

if (getClass() != obj.getClass())

return false;

Student other = (Student) obj;

if (age != other.age)

return false;

if (name == null) {

if (other.name != null)

return false;

} else if (!name.equals(other.name))

return false;

return true;

}

TreeMap判断键唯一的方式与TreeSet一样

TreeMap需要:具有自然排序的能力,或者给指定定制比较器

下面是 指定定制比较器代码

 

public static void main(String[] args) {

//

Student stu1 = new Student("小明",10);

Student stu2 = new Student("小明",20);

 

Comparator<Object> aa = new Comparator<Object>() {

 

@Override

public int compare(Object o1, Object o2) {

// TODO Auto-generated method stub

return 1;

}

};

TreeMap tm = new TreeMap(aa);

tm.put(stu1, 50);

tm.put(stu1, 50);

System.out.println(tm.size());

System.out.println(tm);

 

}

class Student{

int age;

String name;

public Student(String name,int age) {

super();

this.name = name;

this.age = age;

}

 

 

 

@Override

public String toString() {

// TODO Auto-generated method stub

return name+"-"+age;

}

 

}

2,LinkedList和ArrayList问题

   ArrayList底层使用时数组。LinkedList使用的是链表。

  数组查询具有所有查询特定元素比较快。而插入和删除和修改比较慢(数组在内存中是一块连续的内存,如果插入或删除是需要移动内存)

  链表不要求内存是连续的,在当前元素中存放下一个或上一个元素的地址。查询时需要从头部开始,一个一个的找。所以查询效率低。插入时不需要移动内存,只需改变引用指向即可。所以插入或者删除的效率高

ArrayList使用在查询比较多,但是插入和删除比较少的情况,而LinkedList使用在查询比较少而插入和删除比较多的情况。

 

但是:

实际情况在数据少时linklist比较快,而数据多是arraylist要快的多。

3,

分享到:
评论

相关推荐

    自己记录的一些java基础的东西,希望能够经常回顾

    一些java基础的东西,有时候面试会问到,里面涵盖了数据类型,操作符等一些java基础的东西,有时候面试会问到,里面涵盖了数据类型,操作符等一些java基础的东西,有时候面试会问到,里面涵盖了数据类型,操作符等

    java基础笔记

    java基础 在命令行 控制台下的dos命令: 切换盘符 d: 进入某个目录 cd: 查看一个目录下有什么东西:dir 编译时 javac 源文件名 java 运行的时候 java 含有main方法的 类名 注意:不要写 class 公有的 public 的类 其...

    一些与java相关的东西

    至于"JavaWEB_PPT.rar",这可能是一个关于Java Web开发的PPT文件,涵盖了Servlet、JSP、过滤器、监听器等概念,这些都是构建Web应用的基础。 总的来说,这些资料覆盖了Java编程的核心概念,对于理解和实践Java编程...

    java基础入门二

    java基础入门课件、简单明了、没有多余的东西、都是精华

    Java基础宝典

    - **特殊知识点**:接下来,作者提到描述一些特殊的东西,比如异常处理机制、多态性、接口和抽象类的区别与应用等。这些内容对于深入理解面向对象编程至关重要,也是面试中经常被提及的重点。 - **锦上添花知识点**...

    java基础项目shop

    java基础入门的东西,一点简单的实现。 1.商店中,进货(列出能够进货的食品,选择进货的食品,确定进货的数量),进货结束后,列出进货的食品清单 2.商店中,顾客来购买食品(列出能够购买的食品,顾客选择购买的...

    JAVA基础加强

    java基础加强版 ,更人性的巩固基础,万丈高楼平地起,只有打好基础,才能理解更复杂的东西

    java基础(最简单 的东西)

    java基础(最简单 的东西)

    java学习路线图以及学习java要学习的东西

    学习JDBC(Java Database Connectivity),理解如何连接数据库、执行SQL语句、处理结果集,是每个Java开发者的基础技能。 进一步,接触并发编程。Java提供了线程和同步机制,学习多线程编程,理解锁、同步块、...

    华电java课件 都是些基础的东西 适合入门学习用的

    2. **Java语法基础**:课程可能会讲解Java的基本语法,如数据类型(整型、浮点型、字符型和布尔型)、变量声明、常量、运算符以及流程控制语句(如if条件语句、switch语句、for循环和while循环)。 3. **类与对象**...

    java必须知道的东西

    以下是一些Java必须知道的关键知识点: 1. **面向对象特性**: - **抽象**:抽象是忽略不重要的细节,专注于对象的主要功能。它分为过程抽象(如方法)和数据抽象(如类)。Java中的抽象类和接口是抽象的体现。 -...

    绝对经典JAVA基础60题

    【描述】:“不是好东西,要学习JAVA的必须学习,否则天打雷劈......”这句话虽然带有调侃意味,但它强调了Java基础的重要性。Java是一种广泛应用于企业级应用、移动开发(尤其是Android)和大数据处理的编程语言,...

    JAVA基础好东西啊快来看看吧

    本文将深入探讨Java泛型的基础概念及其应用场景,并通过具体的例子帮助读者更好地理解和掌握这一知识点。 #### 二、为什么使用泛型程序设计? 泛型程序设计意味着编写的代码可以被多种不同类型的对象所重用。使用...

    Java基础讲座.pdf

    java继承与接口 前两天写东西,本来想把定义和实现分开来写的。类A有两个方法f1和f2,想把类A的定义、f1的实现和f2的实现分为三个java文件来写,看了看抽象类和接口。不过貌似都不是搞这个的样子。(求方法) 总结...

    基于Java教你如何半小时搞定python基础

    对于熟悉Java的开发者来说,理解Python的基础概念并不困难,因为两者虽然有区别,但也存在一些相似之处。 首先,Python的语法结构与Java有很大的不同。Python强调代码的可读性,使用缩进来表示代码块,而Java则依赖...

    java基础----corejava的核心内容精髓

    该资源主要是corejava中一些重要的知识点,都是java的基础,把java学好,这些知识的必须得熟练掌握的,是学习后面相关java开发技术的垫脚石,这些学好了后面的就容易了。希望这写东西能帮助到你!

    java基础补足和thinking In Java学习.rar

    这系列书籍,非常适合有一定编程基础的人看,里面基本全是技术讲解,能帮助有编程基础的人迅速掌握Java技术!但是对初学者不怎么友好,因为讲得很深入,而且感觉全书都是重点,找不到真正重要的东西! 《Java从...

    JAVA基础知识问答大全

    ### JAVA基础知识问答大全 在《JAVA基础知识问答大全》这一文档中,主要涵盖了Java编程语言的基础概念、核心特性和实际应用中的常见问题解答。对于初学者来说,这份资料是一本宝贵的指南,它不仅能够帮助理解Java的...

    Java是好东西

    Java是一种广泛应用于各种领域的编程语言,被誉为“好东西”是有其充分理由的。它由Sun Microsystems(现为Oracle Corporation的一部分)于1995年推出,设计初衷是为了解决C++在当时面临的复杂性和效率问题。Java的...

Global site tag (gtag.js) - Google Analytics