java之数据结构之链表及包装类、包

  链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针。与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过程,往往使算法的描述简洁而且易于理解。

使用递归算法就是自己调用自己,而递归算法必须要有出口,递归过多也会造成内存栈溢出

1 public  static int JieGou(int num){
2
3         if(num==1) return 1;
4         return num*JieGou(num-1);  //调用自己
5
6    }

java中有8大基本数据类型,但是在面向对象中,本着一个设计的原则“一切皆对象”。在java的基本数据类型完全不符合这种思想。因为八种基本数据类型并不是引用数据类型,所以为了解决这个问题,引入了八种数据类型的包装类。

八种数据类型包装类分为两种:

Number:Integer、Short、Long、Double、Float、Byte

Object: Character、Boolean都是Object的直接子类

基本数据类型:-----------包装类

    int--------------Integer

    char------------Character

    float------------Float

    double---------Double

    boolean--------Boolean

    byte-----------Byte

    short----------Short

    long-----------Long

既然引入了包装类,那么包装类有什么作用呢?

在包装类中,可以将一个字符串变为指定的基本数据类型,输入数据时使用:

(1)、在Integer类中将string变为int类型数据

public static int parseInt(String msg);

(2)、在Float类中将String变为float类型数据

  public static float parseFloat(String msg);

注意:转型操作时,字符串必须由数字组成,否则会出现错误。其他型的数据转换同理

    String  msg="200";
    int m=parseInt(msg);
    System.out.println(m);

结果是:200
//把一个字节的整数缓存在整数常量池中

 Integer  a=127;

 Integer  b=127;

 System.out.println(a==b);

输出结果为真

包:包是对类文件进行分类管理的,给类提供了多层命名空间,包写在程序文件的第一行,类名的全称是包名.类名,包也算是一种包装形式。  

包与访问修饰符:包对于对个java源文件的管理,就像文件目录一样

      定义一个包:package  com.vices.mihu;

记住:该语句只能出现在代码的第一句。

访问修饰符:  

  public  : 同一个类  、同包  、不同包子类  、不同包非子类

  protected :  同一个类  、同包  、不同包子类

  默认    :同一个类  、同包

  private    :同一个类

总结:包与包之间的类进行访问,被访问的包中的类必须是public的,包中的类的方法也必须是public的。

那么如何来创建包?

在java环境下,在命令行中

javac   -d.PackageDemo.java

容易出现两个错误:

1、找不到符号

原因:类名写错:调用另个包中的类创建对象,必须明确其包名:package.Demo  d=new Package.Demo();

2、软件包不存在

原因:是当前目录下没找到,因为包存放在其他目录下,应该配置一个classpath

如何使用包?

导入包就可以使用该包下的文件

import package.Demo;   //导入了package包中的Demo

import package.DemoA;

import package.abc.*;  //导入了该包中的所有类

导包的原则:用到哪个类,就导入哪个类  :导包的目的就是为了简化类名的书写。

时间: 2024-10-28 20:38:51

java之数据结构之链表及包装类、包的相关文章

Java描述数据结构之链表的增删改查

链表是一种常见的基础数据结构,它是一种线性表,但在内存中它并不是顺序存储的,它是以链式进行存储的,每一个节点里存放的是下一个节点的"指针".在Java中的数据分为引用数据类型和基础数据类型,在Java中不存在指针的概念,但是对于链表而言的指针,指的就是引用数据类型的地址. 链表和数组都是线性的数据结构,对于数组而言其长度是固定的,由于在内存中其是连续的,因此更适合做查找与遍历,而链表在内存中是并不是顺序存储的,但是由于其是通过"指针"构成的,因此在插入.删除时比较数

数据结构Java实现04----循环链表、仿真链表

数据结构Java实现04----循环链表.仿真链表 单向循环链表 双向循环链表 仿真链表 一.单向循环链表: 1.概念: 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环. 和单链表相比,循环单链表的长处是从链尾到链头比较方便.当要处理的数据元素序列具有环型结构特点时,适合于采用循环单链表. 和单链表相同,循环单链表也有带头结点结构和不带头结点结构两种,带头结点的循环单链表实现插入和删除操作时,算法实现较为

数据结构Java实现03----单向链表的插入和删除

数据结构Java实现03----单向链表的插入和删除 文本主要内容: 链表结构 单链表代码实现 单链表的效率分析 一.链表结构:            概念: 链式存储结构是基于指针实现的.我们把一个数据元素和一个指针称为结点.   数据域:存数数据元素信息的域. 指针域:存储直接后继位置的域. 链式存储结构是用指针把相互直接关联的结点(即直接前驱结点或直接后继结点)链接起来.链式存储结构的线性表称为链表. 链表类型: 根据链表的构造方式的不同可以分为: 单向链表 单向循环链表 双向循环链表 二

数据结构之链表及其Java实现

数据的存储一般分线性存储结构和链式存储结构两种.前者是一种顺序的存储方式,在内存中用一块连续的内存空间存储数据,即逻辑上相连的物理位置相邻,比较常见的就是数组:后者是一种链式存储方式,不保证顺序性,逻辑上相邻的元素之间用指针所指定,它不是用一块连续的内存存储,逻辑上相连的物理位置不一定相邻.本篇主要介绍链式存储结构基于链表的实现,使用的语言为Java. 链表是一种递归的数据结构,它要么为空(null),要么指向是指向一个结点(node)的引用,该节点含有一个泛型元素(该泛型元素可以是任意数据类型

java项目——数据结构实验报告

java项目——数据结构总结报告 20135315  宋宸宁 实验要求 1.用java语言实现数据结构中的线性表.哈希表.树.图.队列.堆栈.排序查找算法的类. 2.设计集合框架,使用泛型实现各类. 3.API的编写,并导出. 4.使用TDD模式,对程序进行测试,利用TestSuite将各测试类整合到一起. 5.与小组成员实现代码的整合. 实验设计过程 首先自学集合框架章节的内容,初步设计相关的类. 根据数据结构课本的章节分类,实验各数据结构类. 在类的编写过程中,经过老师的指导,我准备使用泛型

Java基本数据结构总结

一直没有很仔细的系统学习Java,之前一直用的是python和c/c++,但是既然要走上大数据的道路,那么一定逃脱不开java的.下面在网上找到一些资料并结合相关的书进行整理总结. java.util包,包含集合框架.遗留的 collection 类.事件模型.日期和时间设施.国际化和各种实用工具类(字符串标记生成器.随机数生成器和位数组.日期Date类.堆栈Stack类.向量Vector类等).集合类.时间处理模式.日期时间工具等各类常用工具包.下面要介绍的Java版的数据结构就是在这个包中.

【转】Java学习---Java核心数据结构(List,Map,Set)使用技巧与优化

[原文]https://www.toutiao.com/i6594587397101453827/ Java核心数据结构(List,Map,Set)使用技巧与优化 JDK提供了一组主要的数据结构实现,如List.Map.Set等常用数据结构.这些数据都继承自 java.util.Collection 接口,并位于 java.util 包内. 1.List接口 最重要的三种List接口实现:ArrayList.Vector.LinkedList.它们的类图如下: 可以看到,3种List均来自 Ab

java 基础数据结构

数据结构, 需要考虑两个方面: 1. 每个元素具体的存储方法 (java中是一个对象) 2. 元素之间的关系如何实现存储 (java中也是一个对象) 另外在java中, 已经可以把跟数据结构有关的一些方法写到一个类里了. 线性表 顺序表 c语言: 借助数组实现 #define INIT_SIZE 100; typedef struct { int elem[INIT_SIZE]; // 用来存储数组元素 int length; // 当前顺序表的长度 } SqList; // 元素之间的关系隐含

java实现数据结构-线性表-顺序表,实现插入,查找,删除,合并功能

package 顺序表; import java.util.ArrayList; import java.util.Scanner; public class OrderList { /** * @param args * @author 刘雁冰 * @2015-1-31 21:00 */ /* * (以下所谓"位置"不是从0开始的数组下标表示法,而是从1开始的表示法.) * (如12,13,14,15,16数据中,位置2上的数据即是13) * * 利用JAVA实现数据结构-线性表-顺