【JAVA学习笔记06】String StringBuffer StringBuilder 集合框架等知识练习

这里是引用

String StringBuffer StringBuilder 集合框架等知识练习

package com.situ.day06.situ;

import org.junit.Test;

import java.sql.SQLOutput;
import java.util.*;

public class Test02 {
    /**
     * String长度是不可改变的,StringBuffer、StringBuilder长度是可变的。
     * 2、StringBuffer是线程安全(需要加锁,效率低)、
     * StringBuilder是线程不安全(没有加锁,效率高)。
     */
    @Test
    public void test1() {
        String str1 = "a";
        String str2 = "b";
        String str3 = "c";
        String str4 = str1 + str2 + str3;
        System.out.println(str4);//中间产生不必要的对象

        StringBuilder builder = new StringBuilder("d");
        builder.append("e").append("f").append("g");//依次拼接
        //System.out.println(builder);//defg

        StringBuffer buffer = new StringBuffer("h");
        buffer.append("i").append("j").append("k");
        System.out.println(buffer);//hijk

        String str = builder.toString();//把builder输出字符串付给str
        System.out.println(str);//defg

    }

    @Test
    public void test2() {
        //自动装箱
        Integer integer = 4;

        //自动拆箱
        int i = integer;

        System.out.println(integer);//4
        System.out.println("--------");
        System.out.println(i);//4

        //包装数据类型和字符串之间的转换
        //1、把基本数据类型转换成字符串
        String str = 12 + "";
        System.out.println(str);//12
        String str1 = Integer.toString(1);
        System.out.println(str1);
        String str2 = Double.toString(9.6);
        System.out.println(str2);
        Character ch = 'a';
        String str3 = Character.toString(ch);
        System.out.println(str3);

    }

    // 实现trim方法
    //情况1 ----java Android----
    //情况2 ---------
    //情况3 null
    @Test
    public void test3() {
        String str = null;
        String newstr = trim(str);
        System.out.println(newstr);
    }

    public String trim(String str) {
        if(str == null){
            return "错误字符串";  // 考虑多种情况
        }
        char[] array = str.toCharArray();
        int startcount = 0;
        int endcount = array.length - 1;
        while ((startcount <= endcount ) && (str.charAt(startcount) == '-')) { //注意&&左右顺序
            startcount++;

        }
        while ((startcount <= endcount ) && (str.charAt(endcount) == '-')) {
            endcount--;

        }
        return str.substring(startcount, endcount + 1);//错误  java: 缺少返回语句 用了sout

    }

    /**
     * 2、实现把“I Love Java!”的字符全部转换为小写并输出到控制台。
     * toLowerCase()   toUpperCase()
     * Case Sensitive大小写敏感
     */
    @Test
    public void test4(){
        String str = "I Love Java!";
        String newstr = toLowerCase(str);
        System.out.println(newstr);

    }

    public String toLowerCase(String str){
        char[] array = str.toCharArray();
        for (int i = 0; i < array.length; i++) {
            if(array[i] >= 'A' && array[i] <= 'Z'){
                array[i] = (char)(array[i] + 32);
            }

        }
        return new String(array); // String 创建对象

    }

    //集合框架


    //ArrayList HashSet
    // 有序,可重复    无序 不重复

    @Test
    public void test5(){
        ArrayList<String> list = new ArrayList<>();
        list.add("Java");
        list.add("b");
        list.add("cc");
        for (String s : list) {
            System.out.println(s);

        }
        //Java
        //b
        //cc
        System.out.println("--------");

        Set<String> set = new HashSet<>();
        set.add("Java");
        set.add("b");
        set.add("cc");
        for (String s : set) {
            System.out.println(s);
        }
        //cc
        //Java
        //b
    }


    //ArrayList和LinkedList
    // 动态数组 改查
    //链表结构 增删

    @Test
    public void test6(){
        LinkedList<String> linkedlist = new LinkedList<>();
        linkedlist.addFirst("A");
        linkedlist.addLast("B");
        System.out.println(linkedlist);//[A, B]
    }

    //map
    //Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值

    @Test
    public void test7(){
        Map<String, String> map = new HashMap<>();
        map.put("cn","中国");
        map.put("kr","韩国");
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        System.out.println(entrySet);//[kr=韩国, cn=中国]
        System.out.println("-------");
        System.out.println(map);//{kr=韩国, cn=中国}
        System.out.println(map.get("cn"));//中国



        System.out.println("*********");
        Iterator<Map.Entry<String, String>> iterator = entrySet.iterator();
        while(iterator.hasNext()){
            Map.Entry<String, String> entry = iterator.next();
            System.out.println(entry.getKey() + ":" + entry.getValue() );
        }
        System.out.println("*********");//kr:韩国   cn:中国

        Set<String> key = map.keySet();
        Iterator<String> it = key.iterator();
        while(it.hasNext()){
            String entrykey = it.next();
            System.out.println(entrykey);
        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值