Java日常刷题基础小结(2)

Java日常刷题基础小结(1)

length, length() 与 size() 的区别

关于length

  • 它针对的是对象是【数组】
  • 它是【属性】
String [] array = {"str1","str2","str3"};
System.out.println(array.length); //3

关于length()

  • 它针对的是对象是【字符串String】
  • 它是【方法】
String string = "string";
System.out.println(string.length()); //6

关于size()

  • 它针对的是对象是【集合】
  • 它是【方法】
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
System.out.println(list.size()); //3

HashMap和HashSet的区别

different

HashMap

  • HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null。
  • HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。
  • Map中不允许重复的键。

HashSet

  • HashSet 实现来 Set 接口

  • HashSet 是一个不允许有重复元素的集合。

  • HashSet 允许有 null值。

  • HashSet 是无序的,即不会记录插入的顺序。

  • HashSet 不是线程安全的, 如果多个线程尝试同时修改 HashSet,则最终结果是不确定的。 您必须在多线程访问时显式同步对 HashSet 的并发访问。

方法:

  • 添加元素可以使用 add()方法,当元素值重复时则会立即返回false,如果成功添加的话会返回true。
  • 使用 contains()方法来判断元素是否存在于集合当中
  • 使用 remove()方法来删除集合中的元素
  • 删除集合中所有元素可以使用clear 方法
  • 计算 HashSet 中的元素数量可以使用 size()方法
  • 使用for-each迭代 HashSet 中的元素
public class RunoobTest {
    public static void main(String[] args) {
    Set<String> sites = new HashSet<String>();
    //HashSet<String> sites = new HashSet<String>();
        sites.add("Google");
        sites.add("Tencent");
        sites.add("Taobao");
        sites.add("Zhihu");
        sites.add("Taobao");     // 重复的元素不会被添加
        sites.remove("Zhihu");	//删除元素,删除成功返回 true,否则为 false
        System.out.println("This contains Tencent: " + sites.contains("Tencent"));	//true
        for (String i : sites) {
            System.out.print(i + " "); //Google Tencent Taobao 
        }
    }
}

List 与 Set 的区别

Collection
List和Set是用来存放集合的接口,并且二者都继承自接口Collection。

List

在 List 中的元素存放是有序的,可以存放重复的元素,检索效率较高,插入删除效率较低。
ArrayList、LinkedList 是 List 的两个实现类。

  • ArrayList:底层的实现就是一个可变数组非同步实现,元素存储的位置是连续。检索效率较高,插入删除效率较低。
//默认创建一个ArrayList集合
List<String> list = new ArrayList<String>();
//创建一个初始化长度为100的ArrayList集合
List<String> initlist = new ArrayList<String>(100);
  • LinkedList:底层实现是双向循环链表数据结构非同步实现。元素存储位置是不连续的,插入删除的执行效率高,查询效率低。
 List<String> stringList = new LinkedList<String>();

Set

在 Set 中的元素存放是无序的,不可存放重复的元素,检索效率较低,插入删除效率较高。
set 遍历只能用迭代,没有下标。

  • HashSet:底层由哈希表(实际上是一个HashMap实例)支持,不能保证元素的顺序,元素是无序的,可以有null,但是null只能有一个,不能有重复的元素。HashSet不是同步的,需要外部保持线程之间的同步问题。
  • TreeSet:实现了 SortedSet 接口,它是一个有序的集合类,TreeSet 的底层是通过TreeMap实现的。TreeSet 并不是根据插入的顺序来排序,而是根据实际的值的大小来排序。TreeSet也支持两种排序方式:自然排序和自定义排序。不能放入重复元素和null。

Character 类

  • Character 类用于对单个字符进行操作。
  • Character 类在对象中包装一个基本类型 char 的值

Character类提供了一系列方法来操纵字符。你可以使用Character的构造方法创建一个Character类对象,例如:

Character ch = new Character(‘a’);

转义序列

前面有反斜杠(\)的字符代表转义字符,它对编译器来说是有特殊含义的。
T

Character 方法

  • Character.isLetter(char ch): 是否是一个字母
  • Character.isDigit(char ch): 是否是一个数字字符
  • Character.isWhitespace(char ch): 是否是一个空白字符
  • Character.isUpperCase(char ch): 是否是大写字母
  • Character.isLowerCase(char ch) : 是否是小写字母
  • Character.toUpperCase(char ch) : 指定字母的大写形式
  • Character.toLowerCase(char ch) : 指定字母的小写形式
System.out.println(Character.isLetter('a'));	//true
System.out.println(Character.isDigit('a'));	//false
System.out.println(Character.isWhitespace('a'));	//false
System.out.println(Character.isUpperCase('a'));	//false
System.out.println(Character.isLowerCase('a'));	//true
System.out.println(Character.toUpperCase('a'));	//'A'
System.out.println(Character.toLowerCase('a'));	//'a'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值