目录
定义泛型类
定义泛型类的语法如下:
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来实现。