类和接口总览
Collection接口
方法签名 | 说明 |
---|---|
boolean add(E e) | 将元素e放入集合中 |
void clear() | 删除集合中的所有元素 |
boolean isEmpty() | 判断集合是否空集 |
boolean remove(object e) | 如果元素 e 出现在集合中,删除其中一个 |
int size() | 返回集合中元素个数 |
object[] toArray() | 返回一个装有所有集合中元素的数组 |
示例
Collection<String> list= new ArrayList<>();//new一个名为list的字符串
list.add("wd");//添加一个值为wd的元素进入list字符串
list.add("nmd");;//添加一个值为nmd的元素进入list字符串
System.out.println(list);//输出list字符串
System.out.println(list.isEmpty());//判断是否为空集合
list.remove("d");//如果有d这个元素则删除
System.out.println(list);
System.out.println(list.size());//输出字符串大小
Object[] elem = list.toArray();//返回装有所有元素的数组elem
list.clear();//清理
System.out.println(Arrays.toString(elem));
Map接口常用方法说明
方法签名 | 说明 |
---|---|
V get(Object k) | 根据指定的 k 查找对应的 v |
V getOrDefault(Object k, V defaultValue) | 根据指定的 k 查找对应的 v,没有找到用默认值代替 |
V put(K key, V value) | 将指定的 k-v 放入 Map |
boolean containsKey(Object key) | 判断是否包含 key |
boolean containsValue(Object value) | 判断是否包含 value |
Set<Map.Entry<K, V>> entrySet() | 将所有键值对返回 |
boolean isEmpty() | 判断是否为空 |
int size() | 返回键值对的数量 |
示例
import java.util.Map;
import java.util.HashMap;
import java.util.Set;
public class test1 {
public static void main(String[] args) {
Map<String,String> ma = new HashMap<>();
ma.put("马超","孟起");//put(k,v)
ma.put("关羽","云长");
ma.put("张飞","翼德");
ma.put("黄忠","汉升");
System.out.println(ma.get("马超"));//输出孟起
System.out.println(ma.get("黄忠"));//输出汉升
System.out.println(ma.getOrDefault("ma","曹操"));
//判断key中是否有张飞
System.out.println(ma.containsKey("张飞"));//true
//判断value中是否有汉升
System.out.println(ma.containsValue("汉升"));//true
//将map中的元素输进一个字符串
Set< Map.Entry<String,String> > q = ma.entrySet();
for (Map.Entry<String,String> tmp : q) {//循环输出
System.out.println(tmp.getKey() + " " + tmp.getValue());
}
}
}
泛型
泛型:就是规定某个类型里存储的元素都为某种类型的元素,如:
String[] 类型中只能存储String类型的元素
int[] 类型中只能存储int类型的元素
而如果我们写一个类,关于这个类型有两个对象,而我们希望第一个对象里存储的元素都为int类型,且第二个类型中的元素为String类型。此时,就要用到泛型。
【规范】类型形参一般使用一个大写字母表示,常用的名称有:
E 表示 Element
K 表示 Key
V 表示 Value
N 表示 Number
T 表示 Type
S, U, V 等等 - 第二、第三、第四个类型
示例:
class Test<T>{//泛型类名为Test
public T[] elem;
public int size;
public Test(){
this.elem = (T[]) new Object[10];
this.size = 0;
}
public void add(T val){
this.elem[this.size]=val;
size++;
}
public T get (int n){
if ( n<0 ||n>=this.size) return null;
return this.elem[n-1];
}
}
public class test1 {
public static void main(String[] args) {
Test<Integer> te= new Test<>();
te.add(1);
te.add(2);
System.out.println(te.get(1));
}
}
ArrayList和LinkList的区别
ArrayList基于数组,LinkList基于链表。
如果需要用到get和set访问。选择ArrayList的开销少一点。