`

java中Collection总结与处理字符串的几种方式

阅读更多

【1】:java中util下集合的总结
java.util包有:
Collection,List,ArrayList,Set,LinkedList,HashSet,TreeSet,Iterator,Map,HashMap,Hasntable,SortedMap,Comparator,Arrays,Enumeration,Vector,Stack,Properties,StringTokenizer,BitSet,Date,Calendar,Locale,Random,Observer,Obserable.

[1]:
Collection是List、Set的父接口
List --- 三个实现类 ArrayList、LinkedList、Vector;
Set  --- 一个实现类 HashSet;

1、List:
List:有序列表,允许存放重复的元素;
实现类:
ArrayList:数组实现,查询快,增删慢,线程不安全,轻量级;下标也是从0开始;
LinkedList:链表实现,增删快,查询慢
Vector:数组实现,线程安全,重量级
2.Set:
无序集合,不允许存放重复的元素;
实现类 HashSet、hashCode返回相同的整数;哈希表;
子接口SortedSet:对Set排序实现类 :TreeSet:二叉树实现的;
Iterator:接口,迭代器;java.util;hasNext();next();remove();
Iterable:可迭代的的访问的 ;java.lang;实现了可迭代的接口就可以用迭代的方式访问;
只需实现 iterator();方法即可;Iterator iterator();
只有实现了Iterable接口的才能用第三种;能用第二种的也一定能用第三种;
ArrayList:自动扩容,是数组照搬过来的;
3.Map
HashMap:键值对,key不能重复,但是value可以重复;key的实现就是HashSet;value对应着放;
HashSet 的后台有一个HashMap;初始化后台容量;只不过生成一个HashSet的话,系统
只提供key的访问;
如果有两个Key重复,那么会覆盖之前的;
Hashtable:线程安全的
Properties:java.util.Properties; key和value都是String类型,用来读配置文件;
HashMap与Hashtable区别:
HashMap线程不安全的,允许null作为key或value;
Hashtable线程安全的,不允许null作为key或value;
TreeMap: 对key排好序的Map; key 就是TreeSet, value对应每个key;
key要实现Comparable接口或TreeMap有自己的构造器;

HashSet:remove(Object o)的原则看这个对象O的Hashcode和equals是否相等,并不是看是不是一个对象;
定义一个Map; key是课程名称,value是Integer表示选课人数;
map.put(cou,map.get(cou)+new Integer(1));

四、Hashtable、Properties
1,Hashtable:实现了Map接口,此类实现一个哈希表,作用和HashMap相同。任何非 null 对象都可以用作键或值。
为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。
2,Properties:继承自Hashtable,比 Hashtable 更严格 属性列表中每个键及其对应值都是一个字符串。
常用方法 String getProperty(String?key) 和 setProperty(String key,String value);
用法:我在C盘下建了一个名为 yy.dat 的文件,文件的内容为:
name=hehe
password=12345
执行以下程序,输出 hehe,可见用 Properties 可以很方便的解析配置文件
Properties p = new Properties();
p.load(new FileInputStream("C:\\yy.dat"));
System.out.println(p.getProperty("name"))

五、两个工具类 Arrays 和 Collections
1.Arrays、此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂
2.Collections、主要提供了在 collection 上进行操作的静态方法
六、遗留的几个类
1.Hashtable, 作用和HashMap相同,不过它是线程安全的,如果不需要线程安全,应该使用HashMap
2.Enumeration, 遗留集合使用枚举接口来遍历元素,它有两个方法, hasMoreElements和nextElement,用法类似
Iterator。
3.Stack,继承自Vector,实现了栈的功能,提供了push()方法押栈 和pop()方法出栈。
4.BitSet, 位集。如果需要高效率的存储一个位序列,例如一个标志序列,请使用位集。它可以对各个位进行
 读取 get(i)
 设置 set(i)
 清楚 clear(i)

【2】:字符串处理的几种方式对比(String,StringBuffer,StringBuilder)

String、StringBuffer、StringBuilder区别:
[1]:String是不可改变的对象。因此每一次对String类型操作的时候,其实等同于生成了一个新的对象。然后将指针指向新的String对象。
[2]:StringBuffer是线程安全的可变字符序列,并且还是同步的。
[3]:StringBuilder的效率和速度要比StingBuffer还要快,所以一般建议使用StringBuilder.

分享到:
评论

相关推荐

    javaAPI学习总结

    Java API 学习总结 Java 是一种广泛使用的面向对象的编程语言,它的API(Application Programming Interface)提供了大量的类和接口,使得开发者能够高效地构建各种应用程序。本文将重点关注Java的基础知识,特别是...

    java oop总结-编程程序

    ### Java OOP 总结与理解 #### 一、面向对象基本概念 在 Java 面向对象(Object-Oriented Programming, OOP)编程中,我们主要关注以下几个核心概念:类(Class)、对象(Object)、封装(Encapsulation)、继承...

    Java企业级开发综合技能知识总结

    32. **编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串** - 使用`new String(byte[], charsetName)`构造函数。 33. **Strings=newString("xyz");创建了几个StringObject?** - 创建了一个`...

    java精华总结

    线程有几种状态:新建、就绪、运行、阻塞和终止。 ##### 5. 控制线程 可以使用线程提供的方法来控制线程的行为,如start()、stop()、join()等。 ##### 6. 多线程安全问题 多线程环境下,多个线程同时访问共享...

    java综合知识点总结

    StringBuffer和StringBuilder都是可变的,适合在多线程环境下进行字符串拼接,StringBuilder是线程不安全的,效率更高。 5. Hashtable与HashMap的区别:Hashtable是线程安全的,不允许null键和null值;HashMap非...

    day03-常用API&异常&Collection;.pdf

    根据上述内容,我们可以看出文档中涉及的知识点主要集中在Java的基础知识,包括数据类型转换、异常处理机制以及Collection框架的基本使用方法。对于学习Java语言的开发者来说,这些知识点是非常重要的基础内容,它们...

    张孝祥老师总结的java面试题

    Java中对象的状态可以分为以下几种: - **可运行状态(Runnable)**:表示对象可以被正常运行。 - **不可运行状态(Not Runnable)**:表示对象由于某些原因暂时无法运行,例如等待锁的释放。 - **终止状态...

    JAVA内存管理总结.pdf

    字符串对象在Java中是不可变的,这导致字符串操作会频繁产生新的字符串对象。例如: ```java StringBuffer sb = new StringBuffer("hello"); sb = null; ``` 在这个例子中,当`sb`被设置为`null`后,原来的`...

    2022年java语言-java语言程序设计.docx

    * 字符串:Java 语言中,字符串可以用于存储一组字符。 5. Java 集合类 Java 集合类可以用于存储和操作大量数据,包括 ArrayList、LinkedList、HashSet 等。 * ArrayList:ArrayList 是一种可变长的数组,能够...

    JAVA 综合面试题.pdf

    该题目考察了 Java 中的字符串处理和编码,要求使用 Java 语言编写一个截取字符串的函数。 16. Java 编程, 打印昨天的当前时刻: 该题目考察了 Java 语言的日期和时间处理,要求使用 Java 语言打印昨天的当前时刻...

    java面试题总结

    - **池**:如果"xyz"不在字符串常量池中,则会在池中创建一个新的引用。 #### 27. Math.round(11.5)等于多少?Math.round(-11.5)等于多少? - **Math.round(11.5)**:等于12。 - **Math.round(-11.5)**:等于-11。 ...

    整理的Java-EE面试总结.pdf

    最后,文档中还提到了Java中数据查询的几种方法,包括SQL查询、HQL查询等。SQL查询是直接使用数据库提供的SQL语言进行数据查询;而HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言。 综上所述...

    java常见面试题及三大框架面试

    如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用 STRINGBUFFER,如果最后需要 STRING,那么使用 STRINGBUFFER 的 toString() 方法。 JSP 方面: 1. JSP 中的内置对象。 JSP 中有 9 种内置对象...

    java 讲师笔记

    4.6 Date类和Calendar类:Java中处理日期和时间的基本类。 4.7 SimpleDateFormat类和DateFormat类:提供日期时间格式化的功能。 4.8 包装类:Java提供了针对八种基本数据类型的包装类,例如Integer、Long等。 4.9 ...

    JAVA API 总结

    7. **`boolean equalsIgnoreCase(String anotherString)`**:比较当前字符串与另一个字符串是否相等,忽略大小写差异。 8. **`boolean contains(CharSequence s)`**:检查当前字符串是否包含指定的字符序列。 9. *...

    Java 最常见 200+ 面试题全解析:面试必备.pdf

    对于Java中的字符串处理,经常被问到的问题包括String类的特性、如何使用String类的方法进行字符串操作、以及String与其他类如StringBuilder、StringBuffer的区别。在Java中,字符串是不可变的,所以每次对字符串的...

    Head First Java中文高清版

    3. Java核心API的使用:Java提供了丰富的核心类库,这本书会介绍如何使用Java的核心API来处理字符串、进行数学运算、管理日期和时间等。此外,书中还会介绍集合框架(Collections Framework)的使用,例如List、Set...

    javajson包

    Java中的`javajson`包,就是为了让Java开发者能够方便地处理JSON数据,将Java对象转换为JSON字符串,或者将JSON字符串解析为Java对象。 在给定的压缩包文件中,我们看到几个关键的库文件,这些是`javajson`包正常...

Global site tag (gtag.js) - Google Analytics