「java实现双向字典」java字典的实现

博主:adminadmin 2023-01-20 11:27:07 254

今天给各位分享java实现双向字典的知识,其中也会对java字典的实现进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

在Java中如何实现双向链表?

双向链表:就是有双向指针,即双向的链域。\x0d\x0a链结点的结构:\x0d\x0a┌────┬────┬────────┐\x0d\x0a│ data │ next │ previous │\x0d\x0a└────┴────┴────────┘\x0d\x0a双向链表不必是双端链表(持有对最后一个链结点的引用),双端链表插入时是双向的。\x0d\x0a有两条链:一条从头到尾,一条从尾到头,删除遍历时也是双向的。\x0d\x0a/**\x0d\x0a * 双向链表\x0d\x0a */\x0d\x0apublic class DoublyLinkedList {\x0d\x0a private Link head; //首结点\x0d\x0a private Link rear; //尾部指针\x0d\x0a public DoublyLinkedList() { }\x0d\x0a public T peekHead() {\x0d\x0a if (head != null) {\x0d\x0a return head.data;\x0d\x0a }\x0d\x0a return null;\x0d\x0a }\x0d\x0a public boolean isEmpty() {\x0d\x0a return head == null;\x0d\x0a }\x0d\x0a public void insertFirst(T data) {// 插入 到 链头\x0d\x0a Link newLink = new Link(data);\x0d\x0a if (isEmpty()) {//为空时,第1次插入的新结点为尾结点\x0d\x0a rear = newLink;\x0d\x0a } else {\x0d\x0a head.previous = newLink; //旧头结点的上结点等于新结点\x0d\x0a }\x0d\x0a newLink.next = head; //新结点的下结点旧头结点\x0d\x0a head = newLink; //赋值后,头结点的下结点是旧头结点,上结点null\x0d\x0a }\x0d\x0a public void insertLast(T data) {//在链尾 插入\x0d\x0a Link newLink = new Link(data);\x0d\x0a if (isEmpty()) {\x0d\x0a head = newLink;\x0d\x0a } else {\x0d\x0a rear.next = newLink;\x0d\x0a }\x0d\x0a newLink.previous = rear;\x0d\x0a rear = newLink; //赋值后,尾结点的上结点是旧尾结点,下结点null\x0d\x0a }\x0d\x0a public T deleteHead() {//删除 链头\x0d\x0a if (isEmpty()) return null;\x0d\x0a Link temp = head;\x0d\x0a head = head.next; //变更首结点,为下一结点\x0d\x0a if (head != null) {\x0d\x0a head.previous = null;\x0d\x0a } else {\x0d\x0a rear = null;\x0d\x0a }\x0d\x0a return temp.data;\x0d\x0a }\x0d\x0a public T deleteRear() {//删除 链尾\x0d\x0a if (isEmpty()) return null;\x0d\x0a Link temp = rear;\x0d\x0a rear = rear.previous; //变更尾结点,为上一结点\x0d\x0a if (rear != null) {\x0d\x0a rear.next = null;\x0d\x0a } else {\x0d\x0a head = null;\x0d\x0a }\x0d\x0a return temp.data;\x0d\x0a }\x0d\x0a public T find(T t) {//从头到尾find\x0d\x0a if (isEmpty()) {\x0d\x0a return null;\x0d\x0a }\x0d\x0a Link find = head;\x0d\x0a while (find != null) {\x0d\x0a if (!find.data.equals(t)) {\x0d\x0a find = find.next;\x0d\x0a } else {\x0d\x0a break;\x0d\x0a }\x0d\x0a }\x0d\x0a if (find == null) {\x0d\x0a return null;\x0d\x0a }\x0d\x0a return find.data;\x0d\x0a }\x0d\x0a public T delete(T t) {\x0d\x0a if (isEmpty()) {\x0d\x0a return null;\x0d\x0a }\x0d\x0a Link current = head;\x0d\x0a while (!current.data.equals(t)) {\x0d\x0a current = current.next;\x0d\x0a if (current == null) {\x0d\x0a return null;\x0d\x0a }\x0d\x0a }\x0d\x0a if (current == head) {\x0d\x0a head = head.next;\x0d\x0a if (head != null) {\x0d\x0a head.previous = null;\x0d\x0a }\x0d\x0a } else if (current == rear) {\x0d\x0a rear = rear.previous;\x0d\x0a if (rear != null) {\x0d\x0a rear.next = null;\x0d\x0a }\x0d\x0a } else {\x0d\x0a //中间的非两端的结点,要移除current\x0d\x0a current.next.previous = current.previous;\x0d\x0a current.previous.next = current.next;\x0d\x0a }\x0d\x0a return current.data;\x0d\x0a }\x0d\x0a public boolean insertAfter(T key, T data) {//插入在key之后, key不存在return false\x0d\x0a if (isEmpty()) {\x0d\x0a return false;\x0d\x0a }\x0d\x0a Link current = head;\x0d\x0a while (!current.data.equals(key)) {\x0d\x0a current = current.next;\x0d\x0a if (current == null) {\x0d\x0a return false;\x0d\x0a }\x0d\x0a }\x0d\x0a Link newLink = new Link(data);\x0d\x0a if (current == rear) {\x0d\x0a rear = newLink;\x0d\x0a } else {\x0d\x0a newLink.next = current.next;\x0d\x0a current.next.previous = newLink;\x0d\x0a }\x0d\x0a current.next = newLink;\x0d\x0a newLink.previous = current;\x0d\x0a return true;\x0d\x0a }\x0d\x0a public void displayList4Head() {//从头开始遍历\x0d\x0a System.out.println("List (first--last):");\x0d\x0a Link current = head;\x0d\x0a while (current != null) {\x0d\x0a current.displayLink();\x0d\x0a current = current.next;\x0d\x0a }\x0d\x0a }\x0d\x0a public void displayList4Rear() {//从尾开始遍历\x0d\x0a System.out.println("List (last--first):");\x0d\x0a Link current = rear;\x0d\x0a while (current != null) {\x0d\x0a current.displayLink();\x0d\x0a current = current.previous;\x0d\x0a }\x0d\x0a }\x0d\x0a\x0d\x0a class Link {//链结点\x0d\x0a T data; //数据域\x0d\x0a Link next; //后继指针,结点 链域\x0d\x0a Link previous; //前驱指针,结点 链域\x0d\x0a Link(T data) {\x0d\x0a this.data = data;\x0d\x0a }\x0d\x0a void displayLink() {\x0d\x0a System.out.println("the data is " + data.toString());\x0d\x0a }\x0d\x0a }\x0d\x0a public static void main(String[] args) {\x0d\x0a DoublyLinkedList list = new DoublyLinkedList();\x0d\x0a list.insertLast(1);\x0d\x0a list.insertFirst(2);\x0d\x0a list.insertLast(3);\x0d\x0a list.insertFirst(4);\x0d\x0a list.insertLast(5);\x0d\x0a list.displayList4Head();\x0d\x0a Integer deleteHead = list.deleteHead();\x0d\x0a System.out.println("deleteHead:" + deleteHead);\x0d\x0a list.displayList4Head();\x0d\x0a Integer deleteRear = list.deleteRear();\x0d\x0a System.out.println("deleteRear:" + deleteRear);\x0d\x0a list.displayList4Rear();\x0d\x0a System.out.println("find:" + list.find(6));\x0d\x0a System.out.println("find:" + list.find(3));\x0d\x0a System.out.println("delete find:" + list.delete(6));\x0d\x0a System.out.println("delete find:" + list.delete(1));\x0d\x0a list.displayList4Head();\x0d\x0a System.out.println("----在指定key后插入----");\x0d\x0a list.insertAfter(2, 8);\x0d\x0a list.insertAfter(2, 9);\x0d\x0a list.insertAfter(9, 10);\x0d\x0a list.displayList4Head();\x0d\x0a }\x0d\x0a}

怎样改变手机java程序的屏幕显示的大小?

我可以很负责的告诉你,不行.

像素是做class时规定好的,最多只是针对某种机型,要适应其他的只有重新编写程序.

有些软件可以通过PC,把jar里的class反编译成java文件,但是大多数的代码都是混淆过的,(这点很容易做到,是常用的加密方法),比如command,它直接混淆成a,你根本不知道a是代表的什么.

所以128*128的手机游戏,就永远是128*128,你要想他适应176*220,唯一的办法就是重新编写所有程序.这就是我们通常所说的"移植",它的工作量是很大的.

如何使用java编一个字典

省力点的就直接调用第三方翻译接口,然后可以保存到本地数据库,本地数据库也提供维护功能。 简单点的就只自己维护数据库,这是个人意见哦

210分-推荐手机

我介绍诺基亚3230 它是款好机,智能手机 关键价格以经下降到1500内了(苏宁、国美的纯行)但是没个机器都有有缺点 ,你自己在斟酌一下吧!

一如NOKIA其他的机子一样,但不能回避其缺点!先把其缺点总结一二:

1,手机的导航键与机壳之间的空隙太多,容易进灰,而且也不好清理,另外手机屏幕也比较容易进灰,同时屏幕会有抖动现象发生

2,铃声效果不很理想!虽然号称48和旋但与其他品牌相比有着明显的差距,即便是MP3铃声效果也不怎么好,与6230等相比也不是一个档次

3,内置摄像头延迟比较厉害

4,软件运行不很迅速,无论开机还是打开程序都有个等待过程

5,延续了过去NOKIA S60手机MP3播放的缺点,只有单声道的播放效果,甚至不能与一些低端MP3手机相抗衡

6,软件运行不怎么稳定,容易白屏幕死机及重新启动的现象发生

7,手机的下半截设计的不怎么好看,有点顾头不顾尾的感觉

当然优点也是比较明显的:

1,作为智能手机,扩展性能强劲,可玩性强

2,设计比较时尚

3,功能完备,拍照、MP3、蓝牙、扩展卡都一应俱全

4,诺基亚品质,通话质量、信号都很好,手机的基本功能做得很扎实

将诺基亚3230手机的优点和缺点做了个集合,声明:全部是个人观点!

先扬后抑,好的优点先:

1、屏幕表现力不错,看了某些moto的所谓的26w的屏幕就知道N记还是比较实在的

2、通话质量、信号都很好,继承了诺基亚的一贯优点

3、电池的续航力是小3不得不谈的问题,不像大家说得那么差,个人觉得还是比较耐用的,至少2天没有问题(不关机,但电话短信都不多,学生用猪狗)。虽然电磁容量不大,但由于是新型的BL-5B的,据说比以前型号的电池耐用些。不过,我还是再配了一块原电.

5、铃声音量还够大,不过表现力就一般,比起日韩机器差远了(抵制日货!!!)

6、蓝牙很好用,数据线也很好用,红外比较慢(手机都差不多,不过N记的红外兼容性还是相当好的)

7、GPRS上网速度不错,跟6230基本一样。

8、可以热拔插RS-MMC卡,不用开关机,方便!

9、FM调频收音机的效果不错,立体声,但非要插上耳机才可以。要是可以直接通过扬声器就好了

10、外型比较前卫、时尚(个人感觉),上市价格便宜低,比7610超值很多(再说小7也太炫了,不适合学生)。

11、手机菜单中的程序图标顺序可以自行排列,根据自己的使用频率可以变换,人性化。第一版面的程序可以通过数字键直接进入,减少脆弱摇杆的使用。(还是觉得摇杆比较脆弱,主要是自己属于力量型,哇哈哈哈哈啊哈。。。谁又打我???)

12、功能键可以自行定义,但可选目标小,方便又不方便。

13、对了,差点忘了3230 fans们最值得炫耀的地方。(音乐,灯光,掌声,尖叫。。。)当然是130w的摄像头咯,拍照效果没的话说

1、设计不是太精细(没有三星的那种做工),键盘后盖缝隙太大,太...容易进灰了,看看宝典里面别人才用一个月的机器就知道了。我才两周不到屏幕里面已经有不少颗颗了(心寒啊。。。怎么也是3k多米啊)不能因为上市价位不高就有这种设计缺陷吧。真想暴打N记的设计师。。。喔嗒a...

2、后盖太难打开,由于设计的是靠摩擦力,所以觉得多开几次那两块小橡胶摩片就没了。到时后盖就,不敢想象啊

3、程序远行速度一般,短信的联想输入法只能联想一次,连7260,6020都可以,老大你还是智能机也!晕

4、MP3太差,无论是用耳机听,还是用扬声器外放,都不好听。

5、下面是现在的小3迷们最应该正视的问题:软件版本存在许多BUG.

a、不论短信或铃声都要先“嘟”一声,再隔2秒才有铃声。不管什么铃声,哪种模式都一样。

我忍!

b、在无声模式下来短信时手机不会震动(不论震动有没有开启),其它模式下震动没有任何问题。

我再忍!!!

c、名片查找时,用abc法查是差不出以非卷舌的声母开头的姓氏。例如:输入z后,可以查出“张”,“周”,“郑”,“朱”等但找不出“曾”姓,有一次我发短信找了n久才明白。

我忍不了啦!!!!!!

6、拍照声音不可更换,声音大小也不可调(只有开或关)。周围一吵就听不见了。什么什么啊。。。“问我:要听到拍照声音干嘛?”。。。我也不知道为什么要听那声音,就是觉得听到爽些。。。哈哈哈哈

7、拍摄视频短片的效果太差,全是马赛克,觉得跟30万摄像头没啥太大区别。

8、有一个专用的PTT一键通。浪费啊~~~现在中国的移动网络根本不支持这个功能。要把这个键改成其它使用功能就好了。想起都郁闷,埋没那么好一个键。。。

9、按键有些硬,不过早说过了,我是力量型,所以我用正好(你们这些人怎么素质这么低呀,居然用鞋子丢别人,还是有脚臭的)

10、130w的摄像头居然没有一点保护,幸亏周围有一圈比较高的

11、没有约会闹钟提醒,我以前的8250都有

12、自带铃声暴难听,建议自己去下载一些悦耳一点的,空间不够就删了,32m的卡也不太够用(也要看你怎么用了)

摩托罗拉E2的整体感受:

整体感受:功能齐全、 性价比高,同等功能和配置的其他大品牌手机价格要在3000+

优点:屏幕清晰,色彩锐利,静态图片表现非常好

MP3 播放(用耳机)音质非常出色 ,和我的 艾利和 播放器不相上下

外形属于比较耐看的 说心里话 刚开始 我并不喜欢这个外形 但越看越顺眼

通话质量令人满意 在比较嘈杂的环境也能清晰对话

按键比较舒服 但是男生用的话 感觉键比较小 也可能是我不太习惯

电池也比较耐用,不长时间听歌、看视频或开闪光灯拍照的情况下3天(每天 开机16小时)没问题,具体 要看个人使用情况

拍摄的照片很清晰 (指使用最佳效果)可以和LG 500万像素的那款手机 媲美

摄像也比较顺畅

支持扩展卡,可以直接接电脑,可把扩展卡识别为可移动磁盘,不用安装软件,支持使用手机直接删除卡上无用文件,支持自建目录

FM 收音机也很清楚 能保存27个台 比较方便

优点补充:外壳手感很好,而且不会留下指纹

缺点:外放喇叭声音太小 ,环境不太安静的情况下无法听到铃声,想不漏掉电话和短信最好开震动

播放视频时,才感觉屏幕比较小,比较暗色的食品看不清楚(可能大多数手机都这样)

短信的字体太小了,看着很累

没有原装的座充 ,用直充不爽

访问移动中国移动服务和音乐频道的快捷键 很讨厌 不小心就按到了 要知道手机上网是要收费的

不支持 收音机外放 比较可惜

不支持目前比较流行的WMV 等格式视频,只支持3GP MPEG4 RMVB的视频 而且比特率不能太高否则无法播放,具体多少数值是界限 需要进一步摸索

补充缺点:语音功能,识别不太准确,也可能我没用好,不过没打算用,所以没仔细研究。

USB接口没有防尘盖,容易弄脏。

电池盖,安装要小心,否则感觉容易弄坏。

NOKIA 7610浅谈:

优点:

1、颜色多样,漂亮的外形,其实这个也是见仁见智,不过相比6600而言要好多了--------但是市场上绝大多数都是黑红搭配的,看习惯了也不觉得很好看。

2、键盘紧密却无错按的麻烦,比起SX1的双侧键盘至少可以单手操作了-----键盘说实话没有6600好用,键盘用时间长了会松,而且塑料感非常强。

3、symbian7系统,自带漂亮的桌面主题软件,这个优势在6600里已经得到体现----主题的话确实很不错,但是使用一些很华丽的主题之后会严重影响机器速度。

4、使用了USB数据线,而且象NG那样支持直插拔,比起SX1的伪USB以及6600的无数据线要方便很多-------没看懂,NG是USB2.0直接连接,认成一个U盘,6600没有数据线,可以用蓝牙或者红外,7610可以用数据线或者蓝牙,但是数据线VERY不稳定,而且蓝牙速度还很慢,所以最好还是用读卡器来进行卡的操作

5、100W的COMS象素的摄象头虽然还是那么鸡肋,但至少比30W要高了半个档次-----效果一般,手机毕竟不是相机,看不出比30W的强,只能看出来比普通的300W的数码相机差很多。

缺点:

1、外形方面,壳的两边高度抛光,极为容易磨损,好在可以换壳(透明的应该很酷)

2、硬件方面采用了单音道,让一些人无法接受。另外也没有FM。

3、symbian7系统,但系统还是作过调整(NOKIA美其名曰优化),但在软件兼容性方面不如symbian6,甚至不如同为symbian7的6600。

4、使用了RS-MMC卡,这会让使用7610的朋友感到十分尴尬。虽然赠送了64MB的RSMMC卡,但有限的容量根本无法满足7610的胃口。这包括游戏安装、软件安装、影音铃声存放以及预留的拍照空间和录影空间。而RSMMC卡现今市面上很难买到,如果有也是相当于MMC卡几倍的高价

回答问题的老兄是网上搜的吧,资料有点太老了,现在RSMMC哪都可以买到,确实比MMC贵,大概要贵10块钱吧,似乎并不是几倍的价格。

我用过NG,6600,7610,确实7610的外型和运行速度要好于6600和NG,但是键盘塑料感太强了!不过功能还是很强大的,兼容性也很好,毕竟是好机器,虽然有缺点,但是也就只能找到这些缺点吧,优点也是很多的。

补充: 个人觉得NOKIA的质量是没话说,具体的还是要楼主能找到自己的一个平衡点, 没有任何一款完美的机器,只是看爱上了它的哪一点

关于java实现双向字典和java字典的实现的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。