String的不变性,LinkedList,Set和Map集合-创新互联

一,String的不变性

1.1String是一个final类,代表字符串,字符串是常量;他们的值在创建之后不能被更改。

成都创新互联公司-专业网站定制、快速模板网站建设、高性价比江州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式江州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖江州地区。费用合理售后完善,10余年实体公司更值得信赖。

1.2String的赋值原理:直接在内存中查找,有没有你所赋值的字符串,如果存在这个字符,则把他的地址赋值给变量,如果不存在,创建这个字符串.然后把该字符串的地址赋值给变量。

例如:

public static void main(String[] args) {

        String s1=new String("abc");
        String s2="abc";
        String s3="abc";
        System.out.println(s1==s2);//false
        System.out.println(s2==s3);//true


    }

这里所说的不可变是指创建的"abc"字符串的内存已经固定下来了,这个字符串会一直在内存中存在。是不可变的。

如图:

s1重新赋值后找到内存为xyz的字符串,更改地址引用,如果没有内存中没有xyz这个地址,先创建xyz这个字符串然后把这个地址赋值给s1,而不是直接将abc变成xyz,因为它具有不变性。

1.3如果经常变化的字符串不推荐使用String定义,因为变化一次就要在储存中创建一个字符串(java中有一个强大的垃圾回收机制,自动释放垃圾资源),因此可以使用Stringbuffer。

常用方法:

1.3.1

根据ASCII码表而得97-104对应的英文字母是abcdefgh

1.3.2 

输出结果是cde

1.3.3

1.3.4 endsWith()  

输出是true

1.3.5  getBytes()  toCharArray()

1.3.6  indexOf()    lastIndexOf()   replace(a,b)

1.3.7   substring()

1.3.8    split()

1.3.9 trim()

返回字符串的副本,忽略前导空白和尾部空白。即去除空格

1.3.9  toLowerCase()  toUpperCase()

二,LinkedList集合

2.1LinkedList集合数据储存的是链表结构,查询慢,增删快。与ArrayList不同的是:ArrayList是数组结构,元素增删慢,查找快,日常使用最多的就是查找数据,遍历数据,所以ArrayList是最常用的集合。

ArrayList新增元素是在最后面开辟新的空间,元素依次往后移动,空出来的位置,插入新元素。

LinkedList直接把两个元素的关键断开,构建与新元素的联系。

LinkedList提供了大量首尾操作的方法如下:

三,Set集合

3.1set接口和list接口一样,它所存的元素是不可重复的,并且元素都是无序的(即存和取的顺序不一致)

HashSet是根据对象的哈希值来确定元素在集合中的储存位置,因此具有良好的存取和查找性能,保证元素唯一性的方式依赖于:HashCode与equals方法。

通俗的理解就是小学生的书包,添加元素就是直接把元素扔进去,没有任何顺序,所以元素不能重复

四,Map集合

概念:

Map是一种键值对(key-value)的集合,Map集合中每一个元素都包含一个键对象和一个值对象,其中键Key对象不允许重复,而值Value对象可以重复。

Map集合没有继承Collection接口,其提供的是key到value的映射,Map中不能包含相同的key值,每个key只能影射一个相同的value,key值还决定了存储对象在映射中的存储位置

map的常用方法:

1.添加:

put(K key,V value)

2.删除

remove(Object  key) 

例如: 

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:String的不变性,LinkedList,Set和Map集合-创新互联
网页URL:http://scjbc.cn/article/psops.html

其他资讯