机试题目11-20题

前面三题没什么说的,就是记住用StringBuffer进行转置就可以了,总结一下14题的set和list集合的区别

14题:自己当时想的是用TreeSet的集合自己排序,发现只对了6/10,看答案发现还有重复的,当时自己忘了ArrayList。

两者都是集成Collection.主要区别有三点:

①是否重复,list可以重复,set不可以重复。

②是否与存放顺序有关,list可以保存插入时的顺序,set不可以(不过LinkedHashSet可以,这里说的是大致上的区别)

③List可以用下表进行访问, 而Set不可以

List又分为ArrayList,vector,LinkedList

1)ArrayList适合随机访问,插入或者删除元素时代价大。

2)vector,线程安全,访问比ArrayList慢,一般不用。

3)LinkedList,适合插入或者删除元素,随机访问慢。和ArrayList正好相反。

Set分为HashSet,TreeSet和LinkedSet;

1)HashSet: 无序
2)LinkedHashSet: 按照插入顺序
3)TreeSet: 从小到大排序

java中List 和 Set 的区别 - 晓乎 - 博客园 (cnblogs.com)

更改TreeSet的排序方法有两种:

java中关于如何对TreeSet进行排序的两种方式_wo ai Java的博客-CSDN博客_treeset实现排序

20题:这题对于第三句话写的是真折磨(不能有长度大于2的不含公共元素的子串重复 )人话就是不能有长度大于等于3的两个相同字符串,并且字符串之间不能有重复。即12121aA34567,虽然前三个和第234个字符串相同,但是有公共元素23,所以这两个重复不影响,仍然是OK的。

 

posted @ 2022-03-03 14:02  塵暘  阅读(53)  评论(0编辑  收藏  举报