java中set<string>类型的东西是什么?如何将一个string类型的字符串增加到里面?

java中set<string>类型的东西是什么?如何将一个string类型的字符串增加到里面?,第1张

Set是集合的意思,是同种对象的集合,<String>说明这种对象都是String类型的对象。

可以这样:

Set<String>set = new HashSet<String>()

String s1 = "hello"

String s2 = "world"

set.add(s1)

set.add(s2)

这样就添加了两个元素

扩展资料:

Java中String类学习总结

一、String是不可变对象

java.lang.String类使用了final修饰,不能被继承。Java程序中的所有字面值,即双引号括起的字符串,如"abc",都是作为String类的实例实现的。String是常量,其对象一旦构造就不能再被改变。

例:

public class Immutable {

public static String upcase(String s) {

return s.toUpperCase()

}

public static void main(String[ ] args) {

String str1= "Hello World"

System.out.println(str1)  //Hello World

String str2 = upcase(str1)

System.out.println(str2)  //HELLO WORLD

System.out.println(str1)  //Hello World

}

}

二、String常量池

常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。Java为了提高性能,静态字符串在常量池中创建,并尽量使用同一个对象,重用静态字符串。对于重复出现的字符串直接量,JVM会首先在常量池中查找,如果常量池中存在即返回该对象。

例:

public class test1 {

public static void main(String[] args){

String str1 = "Hello"

//不会创建新的String对象,而是使用常量池中已有的"Hello",

String str2 = "Hello"

System.out.println(str1 == str2)//true

//使用new关键字会创建新的String对象

String str3 = new String("Hello")

System.out.println(str1 == str3)//false

}

}

1.创建按一个新数组,新数组的长度比现在的大1个

2.将老数组的内容copy到新数组中

3.给新数组的最后一个元素赋值为 插入的字符串

4.删除老数组,(GC处理)

5,给你个例子,你看看

import java.util.Arrays

public class $

{

public static void main(String[] args)

{

String[] arr = { "1", "2" }

System.out.println(Arrays.deepToString(arr))

arr = insert(arr, "a")

System.out.println(Arrays.deepToString(arr))

arr = insert(arr, "b")

System.out.println(Arrays.deepToString(arr))

}

private static String[] insert(String[] arr, String str)

{

int size = arr.length

String[] tmp = new String[size + 1]

System.arraycopy(arr, 0, tmp, 0, size)

tmp[size] = str

return tmp

}

}

结果

[1, 2]

[1, 2, a]

[1, 2, a, b]

是这样的,我觉得你可以换个思路,我们首先只取出b,a,d 构成链表listA= (b,a,d),然后对listA进行排序,listA排序完成后,顺序取出listA中的值为key,取出map中的数据放到listB中,这样顺序肯定是一致的,也就变相的完成排序工作了

代码就不写了,排序的话简单来说就是一个map遍历的问题,

插入的话可以这样,因为第一个表和第二个表已经对应上,那么先插入到listA中,然后获取到插入的位置Index,根据位置插入到B中,

Arralist和linkedlist的方法接口差不多,建议你下载一个中文的JDK API资料,里面很详细

linkedlist:

public void add(int index,

E element)

在此列表中指定的位置插入指定的元素。移动当前在该位置处的元素(如果有),所有后续元素都向右移(在其索引中添加 1)。

Arralist:

public void add(int index,

E element)

将指定的元素插入此列表中的指定位置。向右移动当前位于该位置的元素(如果有)以及所有后续元素(将其索引加 1)。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11197038.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存