`
keating
  • 浏览: 170082 次
  • 性别: Icon_minigender_1
  • 来自: weihai
社区版块
存档分类
最新评论

head first java数据结构笔记(上)

阅读更多
Jukebox1.java
import java.util.*;
import java.io.*;

public class Jukebox1{
  //ArrayList<String> songList=new ArrayList<String>();
  //歌曲名称会存在String的ArrayList上
  ArrayList<Song> songList=new ArrayList<Song>();
  public static void main(String[] args){
    new Jukebox1().go();
  }

  public void go(){
	//这个方法会载入文件并列出内容
    getSongs();
    System.out.println(songList);
    Collections.sort(songList);
	System.out.println(songList);
	//调用Collection静态的sort()然后再
	//列出清单。第二次的输出会依照字母排序
  }

  void getSongs(){
    try{
	  //File file=new File("SongList.txt");
	  File file=new File("SongListMore.txt");
	  BufferedReader reader=new BufferedReader(new FileReader(file));
	  String line=null;
	  while((line=reader.readLine())!=null){
	    addSong(line);
	  }
	}catch(Exception ex){
	  ex.printStackTrace();
	}
  }

  void addSong(String lineToParse){
    String[] tokens=lineToParse.split("/");
	//split()方法会用反斜线来拆开歌曲内容
	//songList.add(tokens[0]);
	//因为只需要歌曲名,所以只去第一想加入SongList

	Song nextSong=new Song(tokens[0],tokens[1],tokens[2],tokens[3]);
	songList.add(nextSong);
	//使用解析出来的4项属性来创建Song对象并加入到list中
  }

}

/*
String类型的输出
[Communication, Black Dog, Dreams, Comfortably Numb, Beth, 倒退噜]
[Beth, Black Dog, Comfortably Numb, Communication, Dreams, 倒退噜]
*/

/*
sort()方法只能接受Comparable对象的list
Song不是Comparable的子型,所以无法对Song的list排序
*/
//以泛型的观点来说,extends代表extends或implement

/*
java.lang.Comparable
public interface Comparable<T>(){
  int compareTo(T o);
}
比较此对象与指定对象的顺序。如果该对象小于、
等于或大于指定对象,则分别返回负整数、零或正整数。 
*/


Song.java
class Song implements Comparable<Song>{
  String title;
  String artist;
  String rating;
  String bpm;

  
  public int compareTo(Song s){
    return title.compareTo(s.getTitle());
  }
  //实现compareTo()的方法的程序代码
  //返回Song比较的结果

  Song(String t, String a, String r, String b){
    title=t;
	artist=a;
	rating=r;
	bpm=b;
  }

  public String getTitle(){
    return title;
  }

  public String getArtist(){
    return artist;
  }

  public String getRating(){
    return rating;
  }

  public String getBpm(){
    return bpm;
  }

  public String toString(){
    return title;
  }
  //重写toStinr()方法

}


SongListMore.txt ;  SongList.txt 包含每行的前两项
Communication/The Cardigans/5/80
Black Dog/Led Zeppelin/4/84
Dreams/Van Halen/6/120
Comfortably Numb/Pink Floyd/5/110
Beth/Kiss/4/100
倒退噜/黄克林/5/90


ArrayList不是唯一的集合
虽然ArrayList会是最常用的,但偶尔还是会有特殊情况。
下面列出几个较为重要的

★TreeSet
以有序状态保持并可防止重复

★HashMap
可用成对的name/value来保存与取出

★LinkedList
针对经常插入或删除中间元素所设计的高效率集合
(实际上ArrayList还是比较实用)

★HashSet
防止重复的集合,可快速地找寻相符的元素

★LinkedHashMap
类似HashMap,但可记住元素插入的顺序,也可以
设定成依照元素上次存取的先后来排序。

Comparator排序的使用 http://keating.iteye.com/blog/258987
1
0
分享到:
评论

相关推荐

    Head First Java 中文高清PDF

    此外,读者还将学习到如何使用Java集合框架,包括数组列表、链表、映射和集合等数据结构,这些在实际编程中非常常用。 线程和并发处理也是《Head First Java》的重点。Java支持多线程编程,使得程序可以在同一时间...

    《HEAD FIRST JAVA》笔记

    ### 《HEAD FIRST JAVA》笔记知识点总结 #### 第一章 进入Java的世界(基本概念) - **Java的工作原理与发展简史**: - Java是一种跨平台、面向对象的编程语言,由Sun Microsystems公司于1995年推出。它的设计...

    Head First Servlets & JSP 学习笔记

    《Head First Servlets & JSP》是一本广受欢迎的教材,它深入浅出地讲解了这些概念,帮助开发者通过SCWCD(Sun Certified Web Component Developer)认证。以下是一些关键知识点的详细解释: 1. **Servlet**: - *...

    head_first_servlet&jsp学习笔记

    【Servlet&JSP基础知识】 ...以上是`head_first_servlet&jsp`学习笔记的主要知识点,涵盖了Servlet和JSP的基础、Web应用架构、MVC模式、会话管理和JSP编程等多个方面,为深入理解和实践Servlet与JSP开发奠定了基础。

    【笔记】【Head_First_Java】1

    《Head First Java》读书笔记——ZhangHao 在学习Java编程时,了解并掌握基本概念、类与对象、原始主数据类型和引用是至关重要的。这篇笔记将深入探讨这些核心概念,帮助初学者建立坚实的Java编程基础。 一、基本...

    Head First设计模式读书笔记-DesignPatterns.zip

    《Head First设计模式》是一本深受开发者喜爱的设计模式学习书籍,它以易懂且生动的方式介绍了23种经典设计模式。这些模式是软件工程中经过实践验证的最佳实践,旨在提高代码的可重用性、可读性和可维护性。下面,...

    java入门级学习笔记

    除了课程内容,阅读官方文档、经典教材如《Head First Java》、《Effective Java》等,以及观看开源项目和在线教程,可以帮助巩固理论知识,提升实践能力。 总之,Java学习笔记旨在为初学者提供全面的学习路径,从...

    java面试大全(题库、源码、书籍、笔记、简历模板).zip

    这些题目通常涵盖了数据结构与算法、Java内存模型、多线程、并发编程、IO/NIO、网络编程、Spring框架、MyBatis、JVM优化等多个主题。熟悉这些题目的答案不仅能让你在面试中应对自如,还能深入理解Java的核心概念和...

    hsp 2021零基础学Java 【软件 资料 代码 笔记】

    3. **书籍**:《Head First Java》、《Thinking in Java》、《Java核心技术卷》等经典著作,深入浅出地讲解Java。 4. **社区讨论**:Stack Overflow、CSDN、知乎等技术社区,可以解决学习中的问题,分享经验。 ...

    java学习书籍

    3. **《Head First Java》**:以独特的视觉和互动方式讲解Java,适合初学者,通过轻松有趣的方式帮助读者理解复杂的概念。 4. **《Java并发编程实战》**:由Brian Goetz等作者编写,是Java并发编程的权威指南,涵盖...

    21天学通java

    3. **HeadFirst设计模式(中文版)**: - 设计模式是软件工程中解决常见问题的模板,本书以一种易于理解的方式介绍了各种设计模式。 - 适合希望提高软件设计能力的学习者。 ### 实战案例与项目开发 1. **疯狂...

    headfirstjava笔记.zip

    《Head First Java》是Java初学者的一本经典教材,它以其独特的教学方式,通过丰富的图像和有趣的故事,帮助读者深入理解Java编程语言的核心概念。这个压缩包“headfirstjava笔记.zip”显然包含了学习这本书时的一些...

    JavaExercises:我在JavaCore上的练习

    Robert Lafore在读《 Java中的数据结构和算法》一书时的练习。 分析成本 一个简单的挥杆应用程序,使我可以分析支出并构建图形。 蚂蚁 我与构建者Apache Ant进行的练习(文章,网络研讨会材料 )。 AntMavenGradle ...

    八种编程语言毕业设计参考文献

    《Datastructures using Java》**(2013):介绍了使用Java实现数据结构的方法,对算法和数据结构有兴趣的同学可以参考。 11. **Martin Ngobye.《Computing Static Slice for Java Programs》**(2012):这是一篇...

    BookReading:读书笔记

    此外,笔记还会涵盖集合框架,包括ArrayList、LinkedList、HashSet、HashMap等数据结构的使用,这些都是Java编程中不可或缺的部分。 此外,你可能还会发现对《Effective Java》的笔记,这本书由Joshua Bloch撰写,...

    leetcode答案-Ombre:java,python学习记录整理

    leetcode 答案 Ombre 整理学习笔记 core_python: python核心编程 data_structure: 数据结构和算法 lettcodeinpython: Leetcode答案 weekly: 每周练习 PythonInLinux: python linux headfirst: headfirst java

Global site tag (gtag.js) - Google Analytics