不说我对应用层的讨厌,做应用层的人确实也很牛逼。当然,不是我见到他们牛逼,而是我觉得做出东西来需要会的东西不少。
前几天,做一个文件浏览。我加入了一个栈来控制路径操作。
从开始学stack开始,我就觉得用stack来控制文件路径操作多方便啊。
点击进入目录,push新文件名,后退,pop掉,不管怎么点,最后还是能完好的保存当前路径。
当然,要实现前进就不是stack所能搞定的了,FIFO才是stack的要点。
接着实现了一个树的数据结构。
stack虽然能自己写,但是java的stack类那么明显摆在那,调用就行了。
树可不一样,还是得自己写个。
root节点 -> 目录节点 ->文件子节点。
一个简单的树行结构。然后在每个相同文件下的文件节点形成一个链表,这样就可以简单快速遍历了。
HashMap<String, Object>:一个多么简单方便的东西。如果在c下面,我可能会傻傻的自己重新去构造个众多bug的来用。但这里这么现成以至于用的人不需要明白什么是Hash表或Hash查找。
map.put()上去,然后就能准确get下来,哎,要是一切东西有这么简单就好。
ArrayList<E>:又一个让我无语SB的东西。可能C语言用多了脑子短路了,在想定义一个数组的问题上纠结了半天,程序挂了N次,终于明白java里,根本就没有数组【】这样的东西存在。ArrayList搞定一切,用起来那么容易,写起来更容易。
总结,对于一个习惯写c的人,用面对对象的东西真是乱七八糟胡乱搞,但不得不佩服真方便。
但是有些东西还是问题很到的。比如对于一个文件的判断,我到现在还不知道能怎么用java判断出一个文件是否为软链接,或者一个文件是否为特殊文件。
在遍历跟目录时,如果是proc和sys一下子就回环了。linux可不是windows。