Java补充内容学习

一、集合

(1)Set

1.概述

Set是Java中的集合类,提供了一种无顺序,不重复的集合。常用的子类包括HashSet, TreeSet等。

(1)HashSet底层使用HashMap实现,根据元素的hashCode和equals来判断是否为重复元素。当元素的hashCode相同且equals返回true时则认为是重复元素。可以放入null但只能放一个null

(2)TreeSet底层使用红黑树实现,Set上的元素被放在一个自动排序的红黑树中。不能放入null

(2)常用方法

(1)add() 向Set中添加元素

(2)size() 返加Set的大小,即Set中元素的数量

(3)remove(Object o) 从Set上删除元素

(4)boolean contains(Object o) 检查Set中是否包含某个元素,包含返回true,不包含返回false

(5)iterator() 返回Set的迭代器

(6)clear() 清空Setis

(7)Empty() 检查Set是否为空,为空返回true, 否则返回false

package collect;

import java.util.HashSet;
import java.util.Set;

/**
 * [简要描述]:Set使用
 * [详细描述]:
 *
 * @author Smalight Lv
 * @version 1.0, 2021/5/6 15:15
 * @since JDK 1.8
 */
public class SetTest1 {
    public static void main(String[] args) {
        Set<String> set =  new HashSet<>();

        //添加元素到Set
        set.add("张三");
        set.add("李四");
        set.add("王五");

        //打印Set
        System.out.println(set);

        //再加入一个王五,不能添加成功
        boolean rst = set.add("王五");
        System.out.println("添加结果:" + rst);
        System.out.println(set);

        //HashSet可以加入null,但只能加入一个null
        rst = set.add(null);
        System.out.println("添加第一个null:" + rst);
        System.out.println(set);
        rst = set.add(null);
        System.out.println("添加第二个null:" + rst);
        System.out.println(set);

        //判断Set中是否包含某个元素
        rst = set.contains("张三");
        System.out.println("是否包含元素\"张三\":" + rst);

        //删除元素
        set.remove("张三");
        System.out.println(set);

        //判断Set中是否包含某个元素
        rst = set.contains("张三");
        System.out.println("是否包含元素\"张三\":" + rst);

        //Set的大小,即Set中元素的数量
        int size = set.size();
        System.out.println("Set的大小:" + size);

        //判断Set是否为空
        boolean isEmpty = set.isEmpty();
        System.out.println("Set是否为空:" + isEmpty);

        //清空Set
        set.clear();
        System.out.println(set);

        //判断Set是否为空
        isEmpty = set.isEmpty();
        System.out.println("Set是否为空:" + isEmpty);

    }
}

运行结果

[李四, 张三, 王五]
添加结果:false
[李四, 张三, 王五]
添加第一个null:true
[null, 李四, 张三, 王五]
添加第二个null:false
[null, 李四, 张三, 王五]
是否包含元素"张三":true
[null, 李四, 王五]
是否包含元素"张三":false
Set的大小:3
Set是否为空:false
[]
Set是否为空:true

(2)Map

Map 提供了一个更通用的元素存储方法。Map 集合类用于存储元素对(称作“键”和“值”),其中每个键映射到一个值

Map提供了一些常用方法,如keySet()、entrySet()等方法keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry

Map<String, String> map = new HashMap<String, String>();
map.put(“key1”, “value1”);
map.put(“key2”, “value2”);
map.put(“key3”, “value3”);

1.初始化

Map<String, String> map = new HashMap<String, String>();

2.插入元素

map.put("key1", "value1");

3.获取元素

map.get("key1")

4.移除元素

map.remove("key1");

5.清空map

map.clear();

(3)List

1.特点

(1)List集合类中元素有序(添加顺序和取出顺序一致),且可重复
(2)List集合中的每个元素都有其对应的顺序索引,即支持索引
(3)List容器中的元素都对应一个整数型的序号记载其在容器中的位置,额可以根据序号存取容器中的元素
(4)List接口的实现类非常多,常用的有ArrayList、Set、Vector

2.常用方法

public class ListMethod {
    @SuppressWarnings({"all"})
    public static void main(String[] args) {
        List list = new ArrayList();
        list.add("张三丰");
        list.add("贾宝玉");
//        void add(int index, Object ele):在index位置插入ele元素
        //在index = 1的位置插入一个对象
        list.add(1, "韩顺平");
        System.out.println("list=" + list);
//        boolean addAll(int index, Collection eles):从index位置开始将eles中的所有元素添加进来
        List list2 = new ArrayList();
        list2.add("jack");
        list2.add("tom");
        list.addAll(1, list2);
        System.out.println("list=" + list);
//        Object get(int index):获取指定index位置的元素
        //说过
//        int indexOf(Object obj):返回obj在集合中首次出现的位置
        System.out.println(list.indexOf("tom"));//2
//        int lastIndexOf(Object obj):返回obj在当前集合中末次出现的位置
        list.add("韩顺平");
        System.out.println("list=" + list);
        System.out.println(list.lastIndexOf("韩顺平"));
//        Object remove(int index):移除指定index位置的元素,并返回此元素
        list.remove(0);
        System.out.println("list=" + list);
//        Object set(int index, Object ele):设置指定index位置的元素为ele , 相当于是替换.
        list.set(1, "玛丽");
        System.out.println("list=" + list);
//        List subList(int fromIndex, int toIndex):返回从fromIndex到toIndex位置的子集合
        // 注意返回的子集合 fromIndex <= subList < toIndex
        List returnlist = list.subList(0, 2);
        System.out.println("returnlist=" + returnlist);
 
    }
}


二、常用类

(1)Object

Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object 的所有方法

Object 类位于 java.lang 包中,编译时会自动导入,我们创建一个类时,如果没有明确继承一个父类,那么它就会自动继承 Object,成为 Object 的子类

1.显式继承:

public class Runoob extends Object{

}

2.隐式继承:

public class Runoob {

}

3.构造一个新对象:

Object()

4.创建并返回一个对象的拷贝:

	protected Object clone()

5.比较两个对象是否相等:

	boolean equals(Object obj)

(2)String

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串

1.创建字符串:

String str = "Runoob";

2.用构造函数创建字符串:

String str2=new String("Runoob");
public class StringDemo{
   public static void main(String args[]){
      char[] helloArray = { 'r', 'u', 'n', 'o', 'o', 'b'};
      String helloString = new String(helloArray);  
      System.out.println( helloString );
   }
}

3.连接字符串:

string1.concat(string2);

(3)StringBuilder

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}

(4)StringBuffer

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer

public class Test{
  public static void main(String args[]){
    StringBuffer sBuffer = new StringBuffer("菜鸟教程官网:");
    sBuffer.append("www");
    sBuffer.append(".runoob");
    sBuffer.append(".com");
    System.out.println(sBuffer);  
  }
}

1. 将指定的字符串追加到此字符序列:

public StringBuffer append(String s)

2. 将此字符序列用其反转形式取代:

public StringBuffer reverse()

3.移除此序列的子字符串中的字符:

public delete(int start, int end)

(5)System

System系统类,主要用于获取系统的属性数据和其他操作,因其构造方法是私有的并且类中的成员方法都是静态的,所以在使用的时候不需要创建对象,可直接调用

1.arraycopy(…)方法将指定原数组中的数据从指定位置复制到目标数组的指定位置:

static void arraycopy(Object src,  int srcPos, Object dest, int destPos, int length)

2.currentTimeMillis()方法返回当前时间(以毫秒为单位)

static long currentTimeMillis()

3.gc()方法用来运行垃圾回收器

static void gc();

4.exit(int status)方法用于终止当前运行的Java虚拟机。如果参数是0,表示正常退出JVM;如果参数非0,表示异常退出JVM

static void exit(int status);

(6)Data

java.util,Date 表示日期和时间的类

类 Date 表示特定的瞬间,精确到千分之一秒(毫秒)

获取时间原点到当前系统时间经历了多少秒

1.getTime()方法

返回:时间原点以来,此Date对象表示的毫秒数

importjava.util.Date;public classDemoGetTime {public static voidmain(String[] args) {

Date date= newDate();long time =date.getTime();//输出:1578728202850//该方法类似于 System.currentTimeMillis()

System.out.println(time);

}

}

2.Date类的无参构造方法

返回:当前系统的日期和时间

importjava.util.Date;public classDemoDate1 {public static voidmain(String[] args) {

Date date= newDate();//输出:Sat Jan 11 15:40:50 CST 2020

System.out.println(date);

}

}

3.Date类的带参构造方法

Date(long date) 参数为一个毫秒值,把传入的毫秒值转换为Date日期

返回:传入参数(毫秒值)对应的的日期和时间

importjava.util.Date;public classDemoDate2 {public static voidmain(String[] args) {

Date date= new Date(0L);//这里输出的是0毫秒时的日期和时间,即时间原点的日期和时间//输出:Thu Jan 01 08:00:00 CST 1970

System.out.println(date);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值