JAVA 学习随笔记录 (八)泛型与集合类

目录

 

定义泛型类

 定义泛型类时声明多个类型

定义泛型类时声明数组类型:

 List集合

Set集合


定义泛型类

定义泛型类的语法如下:

class 类名 <T>

T代表被传入参数的数据类型。

例:

package unit2;

public class Book<T> {                    //T类型的泛型
    private T bookinfo;
    public Book(T bookinfo) {
        this.bookinfo=bookinfo;
    }
    public T getBookinfo() {
        return bookinfo;
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Book<String> bookName=new Book<String>("伽利略的烦恼");
        System.out.println("书名是:"+bookName.getBookinfo());
    }

}

 定义泛型类时声明多个类型

在定义泛型类时,可以声明多个类型,语法如下:

例:T1,T2分别是bool和float型:

MutiOverClass<Boolean,Float> mutiOc=new MutiOverClass<Boolean,Float>(true,3.11f);

定义泛型类时声明数组类型:

数组类型形参

例:

package unit2;

public class Book1<T> {
    private T[] bookInfo1;
        public Book1(T[] bookInfo1){
        this.bookInfo1=bookInfo1;
        }
        public void showBookInfo() {
            System.out.println("书名\t\t作者\t价格\t是否附带光盘");
            System.out.println("_______________________");
            for(int i=0;i<bookInfo1.length;i++) {
                System.out.println(bookInfo1[i]+"\t");
            }
        }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String[] info= {"伽利略的烦恼","东野奎吾","46.30","否"};
        Book1<String> book=new Book1<String>(info);
        book.showBookInfo();

}
}

 List集合

List 接口方法:

方法 功能描述
get(int index) 获得指定索引位置上的元素
set(int index,Object obj) 将集合中指定索引位置的对象修改为指定对象

JAVA中提供两种实现接口类,分别是:

ArrayList以数组的形式保存集合中的元素,根据索引可以快速查表

LinkedList以链表结构保存集合中的元素,随机访问性能较差,但插入删除能力较强

List<E> list=new ArrayList<>();

List<E> list2=new LinkedList<>();

例:List集合的常用方法

package unit2;

import java.util.ArrayList;
import java.util.List;

public class ListTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        List<String> list=new ArrayList<>();
        list.add("b");
        list.add("a");
        list.add("c");
        list.add("d");
        list.add("e");
        list.add("f");
        int i=(int)(Math.random()*list.size());
        System.out.println("随机获得的字符是"+list.get(i));
        list.remove(2);
        System.out.println("移除位置2上的索引后,遍历数组情况如图");
        for(int j=0;j<list.size();j++) {
            System.out.println(list.get(j));
        }
    }

}

 Iterator迭代器:一种遍历用的方法,可以省略使用循环带来的不便,

Iterator<String> it=list.iterator();

while(it.hasNext()){

String str=(String) it.next();

sout(str);

}

Set集合

set接口常用的实现类有HashSet类和TreeSet类,适用于有索引的查询

HashSet不允许有重复元素,TreeSet会自然升序

first方法:返回此set中第一个元素

last方法:返回此set中最后一个元素

例:使用TreeSet进行升序

package unit2;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

public class TreeSetTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Set <Integer> set=new TreeSet<>();
        set.add(-5);
        set.add(-9);
        set.add(5);
        set.add(99);
        set.add(-789);
            Iterator<Integer> it=set.iterator();
            while(it.hasNext()) {
                System.out.println(it.next());
            }
    }

}

 Map集合

在程序中,如果想存储具有映射关系的数据,就需要使用Map集合,它提供了key到value的映射关系,Map接口中不能包含相同的key,并且每个key只能映射一个value,常用方法有:

put(object key,object value) 向集合中添加对应的关系。

get(objective key) 如果存在key对象,则返回对应的值。

接口的实现通过HashMap和TreeMap来实现。

发布了15 篇原创文章 · 获赞 8 · 访问量 919

猜你喜欢

转载自blog.csdn.net/caicai779369786/article/details/90207558