集合:-----容器 与数组相似 存储后还能改变
指就有某种特性的具体或抽象的对象汇总而成的集体
集合的分支体系
Collection Map
存储的都是value 存储的是以 key --value形式存在
List Set
有序可重复 无序无重复 key无序无重复 value 无序可重复
List集合
1.ArrayList 2.LinkedList 3.Vector
1.ArrayList
如何创建对象
无参构造方法 默认带空间的构造方法 带collection参数的构造方法
ArrayList特点 适合遍历轮询 ,不适合插入删除
CURD
存值 add
取值 get
删除 remove
该值 set
清除 clear
ArrayList中常用的方法:
add(E e) add(int index,E e)
addAll(Collection c); add(int index,Collection c)
clear();将集合内的全部元素清除
boolean = contains(Object);找寻某一个给定的元素是否在集合中拥有
ensureCapacity(int minCapacity);
E = get(int index);
indexOf(Object obj);第一次出现的位子的索引
lastIndexOf();最后一次出现的位子
isEmpty();是否为空
Iterator = list.iterator();//选代器
remove(int index)--->删除索引位置的元素 remove(Object obj) --->删除对象
trimToSize();删除数组中多余的空间
集合的交集 并集 差集
removeAll();差集
retainAll();交集
addAll();并集
由于arraylist底层是一个Object[] 的数组 什么类型都可以存
*使用时需要自己造型才能够使用
泛型:用来规定数据类型,定义的时候用一个符号代替某种类型
在使用时用具体数据类型将定义的数据类型代替换掉
注意:泛型不能使用基本类型 如果想要使用基本类型 需要使用包装类 使用的是引用类型
泛型可以用在哪里?
1.泛型类
类定义的时候描述某种数据类型 集合的使用就是这样
2.泛型接口
与泛型类相似 子类实现接口时必须添加泛型 如下:
public interface Test<X>{
public X value;
}
public class Son<X> implements Test<X>{
}
3.泛型方法
方法调用时传参数 方法的泛型与类无关 带有泛型的方法可以放在不带泛型的类中
Set --->HashSet
LinkedHashSet
TreeSet
Set的子类 HashSet <E> Set 里面对象不能重复
HashSet <String> names = new HashSet <String>();
names.add("Jack");
names.add("Jack"); //如果重复则选择最先出现的 ,第二个不能存进(键值对)内部使用HashMap实现,键key不可重复 //集合是无序的 添加的顺序与打印的顺序不一样
如:
names.add("b");
names.add("c");
names.add("a");
names.add("d");
System.out.println(names);
输出的是 : [a,b,c,d]TreeSet <Integer> score = new TreeSet <> ();
score.add(25);
score.add(65);
score.add(258);
score.add(20);
System.out.println(score);
输出是 :[ 20,25,65,258] 会自动排序HashMap里面的 key 是不可重复的的但可以是任意的一个值 ,key 是整数 由对象的地址按一定的算法算出来的,如果对象相同,则 hash 值就相同
HashMap<String ,Integer> score = new HashMap<>();
score.put("Chinese",89);
score.put("Math",91);
score.put("English",95);
score.put("PE",99);
score.put("Chinese",99); //如果相同就是更改 Key(Chinese)的值 位子是无序的
System.out.println(score);
//获取所有的Key
System.out.println(score.keySet());
//获取所有的值
System.out.println(score.values());
//获取Entry
System.out.println(score.entrySet()); //获取键值对
//获取键所对应的的值
System.out.println(score.get("English")); //改键必须存在 否则为 null
//键值对的遍历
//1.通过遍历key 来得到每一个key 对应的值
for(String key : score.keySet()){
//通过key得到值
int s = score.get(key);
System.out.println("key:" + key+ " value:" + s);
}
//2.通过EntrySet 得到 Entery 对象的集合
//一个Entry 管理一个键值对 getKey getValue
Set<Map.Entry<String ,Integer>> entrys = score.enterySet();
for(Map.Entry entry : entrys){
//得到Entry 对应的key
String key = (String)entry.getKey();
//获得value 对应的值
Integer value = (Integer)entry.getValue();
System.out.println("key:" + key+ " value:" + s);
}
Set集合 和 List
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。