java,
分享于 点击 43429 次 点评:148
java,
String 是最重要的一种类型,也是字符串类型。理论大多数类型都可以通过String互相转换。比如数组。
String 在很多语言都分有 可变长度 和 不可变长度。
基本的定义为: String a = "10";
以前老方式的定义为: String a = new String();
String 有多种构造函数,参见API
重提equals 和 ==
equals 一般比较的值
== 比较的是堆内存中的首地址
在系统中,一旦a2被定义同时,对象值为Hello。
那么如果这个对象没有被释放,那么下次再去
定义这个Hello的时候,肯定是使用相同内存地址。
String a2 = "Hello";
String a3 = "Hello";
因此,a2和a3同时指向一个内存空间。
String c = new String("10");
这句话的意思是实际上,相当于是2个对象在右侧。
String a = "10";
new String( a );
String中有很多非常有趣的方法。
比如:截取,替换,查找,比较
* charAt(int index)
返回指定索引处的 char 值。
length() 返回字符串的长度
compareTo
比较两个A和B字符串的字典顺序
如果A>B 输出大于0,
如果A==B 输出等于0
如果A<B 输出小于0
A.compareTo( B )
compareToIgnoreCase 忽略大小写比较
* startWiths 只是返回以某个字符串为前缀是否存在。
* q5.startsWith( q4 )
*
* replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配
给定的正则表达式的子字符串
split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。
* substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
* toLowerCase()
使用默认语言环境的规则将此 String
中的所有字符都转换为小写。
* toString()
返回此对象本身(它已经是一个字符串!)。
* toUpperCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
* trim()
返回字符串的副本,忽略前导空白和尾部空白。
valueOf(int i)
返回 int 参数的字符串表示形式。
indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
* StringBuffer 适应多线程安全的字符串。
* 1、执行速度较慢。
* 2、相对安全。
*
* StringBuilder 适应于非多线程的字符串。
* 1、执行速度快。
* 2、相对不安全。
*
* append 追加字符串
* delete 删除字符串
2、 * List 列表。可看作是可以改变的数组。
* List 和 Set都实现了 Collection接口
* List下面有ArrayList和LinkedList、Vector子类
* ArrayList 初始容量为10
* 根据每个数据类型在学习的时候 我们需要掌握四大操作:
* 1、增 add
* 2、删 remove, removeAll, clear
* 3、查 get contains indexOf isEmpty() size
* 4、改 set
3、 迭代 Iterator
其实就是把集合中的数据一个个取出
Iterator<Object> ter = list.iterator();
//如果仍有元素,继续迭代。用while写法
while( ter.hasNext() ){
System.out.println( ter.next() );
}
//for作用于for局部,即用完以后释放内存。推荐使用
for( Iterator<Object> ter1 = list.iterator();
ter1.hasNext(); ){
System.out.println( ter1.next() );
}
-collection
-List 有序的可变化长度的数组。数组里一般存放都是对象的引用
//ArrayList初始长度为10,每扩容+5;
-ArrayList 数据结构为:数组形式存在。适合于查询,修改操作,速度快
* -增 add() addAll()
* -删 remove() clear()
* -查 get() indexOf() size() contains()
* -改 set()
*
* -LinkedList 数据结构为:链表形式存在。适合于增加,删除操作,速度快
* -增 add() addAll() addFirst() addLast()
* offer() offerFirst() offerLast()
* push() //在尾部加入一个数据
* -删 remove() clear() pop() //在尾部提出一个数据 removeFirst()
* removeLast()
* -查 contains() get() getFirst() getLast() indexOf() lastIndexOf()
* //获取列表头不移除第一个/最后一个元素
* peek() peekFirst() peekLast()
* //获取不包括第一个元素的列表、获取不包括最后一个元素的列表
* poll() pollFirst() pollLast()
* size()
* -改 set()
*
* //初始长度为10 ,每次扩容+10;
* -Vector 数据结构为:数组形式存在。Vector是同步的,安全的,速度较慢。
* Java 枚举, 迭代的前身。
*
* subList(a , b) 获取某一段的列表值。开始截取的位置,结束截取的位置。
*
* -Set
* -HashSet
* -TreeSet
4、 * Set: 一组无序的集合
* -Set(集)
* //根据哈希值排序
* - HashSet:由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变。
* 在HashSet内部是不允许添加重复数据。如果有,则不会添加,并且返回false
* 执行速度快
* -增 add()
* -删 remove() clear()
* -查 size() contains();
* -改 因为没有索引,所有东西要么删除 要么添加
*
* -LinkedHashSet:遵守add的顺序。
*
* - TreeSet (接近ASCII排序)
* //根据自然排序(树的形式),支持SortedSet排序
* //查询速度较慢
相关文章
- 暂无相关文章
用户点评