⑴ java中set<string>类型的东西是什么如何将一个string类型的字符串增加到里面
Set是集合的意思,是同种对象的集合,<String>说明这种对象都是String类型的对象。
可以这样:
Set<String> set = new HashSet<String>();
Strings1= "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
}
}
⑵ List、Set、Map三种集合的区别
1. Set集合:
Set接口是Collection接口的一个子接口,它提供无序且不包含重复元素的集合。在添加元素时,Set会根据元素的hashCode值来检查是否已存在,如果存在相同的元素(即调用equals方法返回true),则添加操作会失败,返回false。Set的主要实现类有:
- HashSet:可以存储任意类型的元素,添加元素时会使用hashCode和equals方法来确保唯一性。
- TreeSet:只能存储一种数据类型,默认根据元素的自然顺序进行排序,也可以通过实现Comparator接口来自定义排序。
2. List集合:
List接口继承自Collection接口,它维护了一个元素的有序集合。List有两个主要的实现类:
- ArrayList:基于数组实现,提供快速的随机访问能力,但在插入和删除元素时效率较低。
- LinkedList:基于链表实现,插入和删除操作较为高效,但随机访问性能较差。它还提供了一些特殊方法,如addFirst、addLast等,适合用作栈、队列或双向队列。
3. Map集合:
Map接口定义了键值对的映射关系,不是Collection接口的子接口。它有两个常用的实现类:
- HashMap:非线程安全,适用于单线程环境,提供灵活的键值映射。
- Hashtable:线程安全,性能相对较低,适用于多线程环境。
- LinkedHashMap:在HashMap的基础上,保留了插入顺序,适合需要顺序访问的场景。
- TreeMap:以红黑树实现,自动排序,适合需要按顺序访问和排序的键值对。
在选择集合类型时,应根据需要访问元素的方式(随机或顺序)、元素是否唯一、以及是否需要线程安全等因素来决定。
⑶ 怎样从java集合类set中取出数据
创建set的iterator方法:
Set<Object> set = new HashSet<Object>();
Iterator<Object> it = set.iterator();
while(it.hasNext())//判断是否有下一个
it.next()取出元素。
以上方法便是从Set集合中取出数据。
(3)set接口常用方法扩展阅读:
Java中使用Set接口描述一个集合(集合不允许有“重复值”,注意重复的概念),集合Set是Collection的子接口,Set不允许其数据元素重复出现,也就是说在Set中每一个数据元素都是唯一的。Set接口定义的常用方法如下:
1、size() 获取Set尺寸(即Set包含数据元素的总数)。
2、 add(Object obj) 向Set中添加数据元素obj。
3、remove(Object obj) 从Set中移除数据元素obj。
4 、contains(Object obj) 判断当前Set中是否包含数据元素obj,如果包含返回true,否则返回false。
5、iterator() 将Set装入迭代器。