学java有必要学STL吗

作者&投稿:惠苛 (若有异议请与网页底部的电邮联系)
学习c++好 还是JAVA 更有前途???~

C++ 难学,更底层,而且效率比Java高。
java好学,C++中让人头疼的指针给扔掉了。
C++入门的话看老谭那本书是远远不够的。
C++ Primer这本巨著是一定要看的。 如果你想让你的代码写起来更规范,而且远离陷阱,《Effective C++》 和《more Effective C++ 》 可以帮助你 这2本书作为辅助书籍, 能够长时间坚持学习, 那么你的C++水准就可以提升一个档次。

接下来, STL标准库是C++的精华, 包含的优秀的算法, 容器等。一定要学习,学会的用起来很方便,处理数据十分顺手。
我推荐《C++ 标准程序库》 如果你学习好了STL 《effective stl》 可以帮助你更好的运用它。

如果你学会了这些,你还想学习C++的图形界面编程。

建议你学Qt (MFC也可以,不过有点老了,而且微软也不重视了) 书籍《精通Qt4编程》 《C++ Gui Qt4 编程》 都是不错的入门书籍。

学会的这些,如果你想进阶算法是必不可少的,《算法导论》是一本很有名的名著,我学起来很费力, 真的很难,需要数学功底, 如果LZ有毅力建议学一下。

汇编最好懂一点,起码要看懂,不要求会编写,

这是我给你的建议,站在C++学习的角度上, 纯手工打造, 互联网上绝无第2份~~

现在想从事Java编程的人越来越多,java往往是靠自己在大学教育之外学习的实践技能。目前,对于JAVA技术类电脑编程语言的学习方式选择,主要有上Java培训班进行课堂学习和通过视频自学方式学习JAVA语言两种,不过其各有优点缺点,我们先看一下这二种JAVA语言学习方式:  上培训班进行的好处是少走弯路,跟着班走,有学习环境和氛围,有同学可以交流,也有老师指导。这是个比较靠谱的学习方式,大部分人都能成功结业。但,上\班往往也有一些弊处,一个是学生比较多,周期和学习的课比较固定,对于有些学习效率高的人来说,可能进度有些慢,对学习比较慢的人,又显得太快,不可能满足每一个人的需求。同时,\的收费都挺高的。  有经济基础的话可以考虑去\,那个挺贵的,一般都上万的学费,学四五个月,从最基础的东西开始教,然后带着你不断做项目,学完过后比较容易\。  如果选择视频\的方式,相对来说可以减少记忆压力,其优点在于,通过视频学习应学会慢慢的培养自己独立思考的能力,要有时间想,同时对特定的知识点可以重点重复看,重复做思考,这种学习方式类似与跟人做技术沟通。但缺点在于,缺少老师指点,对于不会的和重要的知识点,无法有更深的体会和把握,还有就在通过自己一段的学习后,自我感觉良好,可在应聘或实际应用中确发现自己一问三不知的情况,还有一点就是学习时间会更长一些。最关键之处是不能自律,学着学着就放弃了。  还有,如果有C语言、C++,c++基础的话,学好了java会很简单。  每个人肯定是基于自己观察的情况给出的,条条大路通罗马。至于是自学还是培训,貌似都可以成功。关键看你自己更适合哪一个了。

Java 中所有的STL均继承自Collection类。所以Collection类的方法所有的子类均可使用:

ACM中常用的方法有

boolean add(Object obj)
boolean remove(Oblect obj)
boolean contains(Object obj)
void clear()
boolean isEmpty()
Iterator iterator()
int size()

另外Collections类中包含sort方法可以对Vector容器进行排序,但是Vector中的元素必须实现Comparable接口或自定义Comparator,详见Vector。

请注意Collections和Collection不一样,前者是接口后者是类。

Set

java 中的Set是一个抽象的类,因此我们不可以用Set直接定义实例,必须通过子类来定义实例。常见的子类有 HashSet , TreeSet等。
另外java中的所有容器的元素都只能是类的实例而不可以是基本数据类型。所以我们不能定义装有int的Set而是要把int改为Integer类。

HashSet
HashSet 中的元素需要实现hashCode()方法,以实现元素的比较
class P
{
int x, y;
int hashCode()
{
return x*100000 + y;
}
}
Set<P>st = new HashSet<P>();

遍历Set中的元素

1 迭代器
Iterator<P> it = st.iterator();
while(it.hasNext())P e=it.next();
2 枚举
for(P e : st)System.out.println(e.x+" "+e.y);

TreeSet
TreeSet 与HashSet不同的地方在于TreeSet中的元素要实现Comparable接口
值得注意的是 TreeSet与C++中的set很相似,遍历是会自动按照comparable定义的顺序进行
class P implements Comparable<P>
{
int x,y;
int compareTo(P e)
{
return x<e.x?-1:1;
}
}

C++中set有upper_bound(),lower_bound()方法和multiset,遗憾的是Java中 我暂时还没有看到

Map

Map 同Set一样包含HashMap和TreeMap 且如果遍历TreeMap会自动按照comparable规定的顺序进行
boolean containsKey(Object key)
boolean containsValue(Object value)
value get(Object key)
value put(Object key,Object value)
Map的一般用法

1.声明一个Map:

Map map = new HashMap();

2.向map中放值,注意: map是key-value的形式存放的,如:

map.put("sa","dd");

3.从map中取值:

String str = map.get("sa").toString,

结果是: str = "dd'

4.遍历一个map,从中取得key和value:

Map m= new HashMap();

for(Object obj : map.keySet()){

Object value = map.get(obj );

}
网上找的程序遍历map

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

public class HashMapTest {

private static Map<Integer, String> map=new HashMap<Integer,String>();

STL无论是从实用还是思想都值得学习。
但由于MS有意无意的忽略,导致VC中STL效率不好,而且MSDN中介绍也很少!
基本没有比较好的中文资料,学STL要看E文的了!
另外,STL应该是Generic Programming的典范,GP是否归于OOP当中,现在还没有定论。

没有必要,STL是C++的库,java 里有自己专门的集合库。

STL不是C++库吗

stl ? jstl ?


Java软件工程师要学什么?
现在的B\/S程序居多,学习当然要侧重这方面的内容了 1、HTML Div+Css 2、SQL、oracle 3、Java基础如Java编程逻辑,Java基础类、接口,对照Java API系统学习一下,awt和swing就没必要看了 4、JavaEE体系,包括jsp、servlet、javabean、jstl、webservice包括服务器tomcat、weblogic 5、框架,struts、...

java开发都需要学什么
对于初学Java并且有志于后端开发的同学来说,需要重点关注以下几个部分:基础:比如计算机系统、算法、编译原理等等 Web开发: 主要是Web开发相关的内容,包括HTML\/CSS\/js(前端页面)、 Servlet\/JSP(J2EE)以及MySQL(数据库)相关的知识。它们的学习顺序应该是从前到后,因此最先学习的应该是HTML\/CSS\/JS...

现在学Java开发有前途吗
第一,现在很多人学习Java,但是学的并不是工作需要的技术,都是根据自己从网上找的资料随便学或者找到哪些学哪些,但其实网上很多资料都比较过时,学了工作时也可能用不到,这就导致在找工作的时候容易被淘汰。第二,Java技术更新换代比较快,每天市场上都有新的技术产生,这也使得一些名企的招聘需求也...

java培训要学习哪些内容?
如需java培训推荐选择【达内教育】,java培训要学习以下几点内容:1、Java基础:Java语言基础知识的学习和应用,Java使用技巧、集合框架与数据结构,数据库理论与应用、互联网网站及信息系统的开发与应用等。2、Java中级:企业团队项目协同开发与维护、商业项目模块化基础与应用、软件项目测试与实施和企业主流...

上Java培训班都需要学什么内容呢?
MySQL数据库技术,JDBC技术、JSP、Servlet、EL和JSTL、过滤器和监听器、AJax异步请求等,Linux技术、SVN、Linux环境下项目发布部署等。 3、掌握使用流行框架SSM\\SSH技术实现企业级项目开发:重点学习MyBatis、Spring、Spring MVC框架的应用,Git、Java设计模式等,重点学习Struts2 、Spring、Hibernate框架的...

学习java要多久
6、 HTML、CSS、Javascript。HTML-- 超文本标记语言;CSS --层叠样式表;JavaScript--是一种由Netscape的LiveScript发展而来的脚本语言。 准确的说,这些东西和Java语言本身关系不大。但是,现在的企业项目,以B\/S结构的居多。因此,我们的Java程序,会有大量的机会和它们打交道。需要提前准备一下。

JAVA学习
5、掌握Servlet相关技术,利用Servlet,JSP相关应用技术和DAO完成B\/S架构下的应用开发。6、泛型,反射,注解。7、掌握JAVA高级应用,利用泛型,注解,枚举完成自己的CRUD框架开发为后续框架学习做铺垫。8、单点登录,支付功能,项目整合,分页封装熟练运用JSP及Servlet核心知识完成项目实战。--- 第三阶段:J...

java 初级、中级、高级工程师有什么区别?
MVC与Struts,学习业界通用的MVC设计模式和Struts架构; Java B\/S商务项目开发,4~5人一个项目组,项目大小为(25人*工作日左右) 3、高级部分 J2ME程序设计,包括J2EE程序、J2ME;Java高级程序设计(J2EE),包括J2EE体系结构和J2EE技术、EJB;Weblogic使用、 JBuilder开发; Java和XML,包括Java Web Service, JavaXML, 业界主...

成为初级java工程师需要学什么
准确的说,这些东西和Java语言本身关系不大。但是,现在的企业项目,以B\/S结构的居多。因此,我们的Java程序,会有大量的机会和它们打交道。需要提前准备一下。7 你需要学习如何使用及管理WEB服务器,例如tomcat,并且知道如何在其基础上扩展和维护WEB程序,如何使用它的附加服务,如连接池。8 JSP ...

JAVA学习内容有哪些?java学习课程有什么内容?
JAVA学习内容有JavaAPI相关知识,java学习课程有Java专业基础课程、JavaWEB核心课程。如需学习java推荐选择【达内教育】。java学习课程和内容具体如下:1、Java专业基础课程:Java的开发环境与编程核心知识、Java面向对象知识进行程序开发、应用JAVA多线程技术等。2、JavaWEB核心课程:数据库和MySQL核心技术、JDBC与DAO数据库操...

蓬溪县13160229262: 做嵌入式软件开发需不需要学STL,前辈指点一下,谢谢啦! -
苍梧月司巴: 学STL其实是学和熟悉常用的数据结构和算法 部分嵌入式环境也许没有预置C++或者STL.但学习了STL的原理和技巧,会有助于自己快速解决问题.学比不学有意义.

蓬溪县13160229262: Java与C++区别 -
苍梧月司巴: 我最初学习的是Java,后来又学习C++,虽然二者都是面向对象的语言(C++是半面向对象语言),但是在C++的学习过程中,C++“几乎完全”没有规则性或者超灵活性的语法让一个之前学过JAVA语言的人感到很不爽!!! Java确实是个很...

蓬溪县13160229262: 学习计算机编程需要掌握哪些知识 -
苍梧月司巴: 我觉得应该根据你的工作需要或者说你的发展方向而定.基本上两大类吧:C/C++和Java.比如,如果你要做企业级应用的你应该学习Java和C#;如果你想做嵌入式,那么应该学好C语言;其他情况下,在你不知道要做什么之前你可以选择学习...

蓬溪县13160229262: C++和JAVA选什么?那个就业更容易? -
苍梧月司巴: 你好我是学软件工程的.C++的话,他是一个偏底层的开发工具,几乎任何大...

蓬溪县13160229262: 【计算机】本人高三中职生,计算机专业.想问下自己编程序的话,学哪门语言比较好.C语言已学. -
苍梧月司巴: 假如你有了c语言扎实的基础,学习C++并不是太难,但是学习c++的话,你还是要付出大量的努力才能真正灵活的运用.特别是摆放在你面前大量 的库就真的够你学的了.STL,Boost这两种就够你学的了.此外,要想真正的开发出软件,你还得...

蓬溪县13160229262: 我想做编程开发,但是不知道做什么方向.求解惑 -
苍梧月司巴: 这里是我自己学习编程 语言的一些经历希望可以帮到你. 我看过编程很多书籍和相关资料都反应了学编程先学计算机语言起.应该学习哪种语言,我觉得应该根据你的工作需要或者说你的发展方向而定.基本上两大类吧:C/C++和Java.比如...

蓬溪县13160229262: 我是学JAVA的,想问一下JAVA的应用前景到底如何,JAVA与C++哪个更好. -
苍梧月司巴: 我是做java的,但是我还是觉得C++好,不过java学起来会比c++要容易些

蓬溪县13160229262: 在计算机专业里 学什么语言最好 C++ C# C ....还是什么好呀 -
苍梧月司巴: 最好学的、最容易学的:VB VB(Visual Basic):界面可视化,易操作.学习比较容易. 最有前途的也是用途最广泛的,学习难度最大的:C++ C++:C语言的扩展. 增加了一些新的特性:类,继承、抽象,模板、多态、STL标准模板库. JAVA语言:J2EE,J2SE,J2ME,也是比较复杂的一门语言,前景不错,做手机开发,电子商务开发都可以.在我国南方VB比较有发展,北方C、C++,JAVA比较有发展,前景不错.

蓬溪县13160229262: 现在学编程要学什么 -
苍梧月司巴: 你既然喜欢编程,就应该认认真真的学习一门语言,先从VB开始,VB是比较好的入门语言,可视化的,比较简单,是非常好的入门语言.书籍最少应该准备两本,不可能一本书籍会包含VB的所有内容,在看书的时候,可以交叉的看,一本书籍...

蓬溪县13160229262: 就业我想深入学习一门编程语言,请高手们介绍一下,顺便问一下C++
苍梧月司巴: 补充上面的,java和c++将来的职业上有较大区别,总的来说java和c#在网络应用系统集成这方面比较多;而c++则在游戏,塞班手机,嵌入式等这些注重效率偏底层的方向...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网