java基础---集合
2021-06-30 20:04
标签:i++ nbsp 存储方式 改密码 索引 指定元素 java集合 包含 常用方法 1-Java集合的特点 接口可以继承接口 2-List集合常用方法 add(Object o) 向列表的尾部追加指定的元素 add(int index,Object o) 在列表的指定位置插入指定元素 get(int index) 返回列表中指定位置的元素 contains(Object o) 如果列表中包含指定的元素,则返回true remove(int index) 移除列表中指定位置的元素 remove(Object o) 移除列表中出现的首个指定元素 clear() 从列表中移除所有元素 size() 返回列表中的元素数 举例: //添加元素 //获取集合最后一个元素 //获取集合元素个数 //循环迭代集合 //查看元素 //移除元素 3-ArrayList 特点,可变数组,查询效率比较高 举例: //添加元素 //获取元素集合 //循环迭代集合 //获取集合中第3个元素 //移除元素 //查看元素 //查看集合中是否存在名称为u004的User对象,如果存在,修改密码为888888 //查看修改完的集合中元素 4-LinkedList:插入、删除元素时效率比较高 addFirst(Object o) 将给定元素插入此列表的开头 addLast(Object o) 将给定元素追加到此列表的结尾 getFirst() 返回此列表的第一个元素 getLast() 返回此列表的最后一个元素 reomveFirst() 移除并返回此列表的第一个元素 removeLast() 移除并返回此列表的最后一个元素 父类的声明子类的实现,不能调用子类的方法 举例: User u1=new User("u001","123456"); //添加元素 System.out.println("linkedList的第一个元素:\n"+list.getFirst()+","+list.get(0)); //移除元素 主要实现类: 举例: //如何获取集合元素?迭代set集合元素 while(it.hasNext()){ 6-Map接口 1)Map用于保存具有映射关系的数据(key-vlaue)。 Map实现类:HashMap、LinkedHashMap、 举例: //判断集合中是否存在某个value //获取key集合 } //获取value集合 3)Map遍历 7-泛型集合 举例: //获取map中元素的键 //增强型for迭代value的集合 java基础---集合 标签:i++ nbsp 存储方式 改密码 索引 指定元素 java集合 包含 常用方法 原文地址:https://www.cnblogs.com/-lyr/p/9639609.html
Collection接口:不唯一,无序
List接口:不唯一,有序
其中常用类:ArrayList、LinkedList
ArrayList实现了长度可变的数组;遍历元素和随机访问元素的效率比较高
LinkedList采用链表存储方式。插入、删除元素时效率比较高
Set接口:唯一,无序
Map接口:键值对,提供key
//ArrayList的使用
ArrayList alist=new ArrayList();
alist.add("a");
alist.add(1,"b");
alist.add(2,"c");
alist.add(3,"d");
alist.add(4,"e");
Object ob=alist.get(alist.size()-1);
System.out.println("集合中的最后一个元素是:"+ob);
System.out.println("集合元素个数:"+alist.size());
for(Object s:alist){
System.out.print(s+"\t");
}
System.out.println();
if (alist.contains("c")) {
System.out.println("存在对象");
}else{
System.out.println("不存在");
}
alist.remove(3);
System.out.println("查看移除后的元素");
for(Object s:alist){
System.out.print(s+"\t");
}
添加元素add()
删除元素remove()
获取元素get()
修改,先查询对象是否存在,再修改对象的属性
//集合中存放的元素默认都是Object
ArrayList alist=new ArrayList();
User u1=new User("u001", "123456");
User u2=new User("u002", "123456");
User u3=new User("u003", "123456");
User u4=new User("u004", "123456");
User u5=new User("u005", "123456");
alist.add(u1);
alist.add(u2);
alist.add(u3);
alist.add(u4);
alist.add(u5);
System.out.print("集合元素个数为");
System.out.println(alist.size());
for(Object s:alist){
System.out.println(s+"\t");
}
System.out.println();
Object ob=alist.get(2);
//方法一:一般情况,使用父类方法
System.out.println("显示第三个元素");
System.out.println(ob);
//方法二:强制转换
User u=(User)ob;
System.out.println(u.getUname()+","+u.getPassword());
System.out.println();
alist.remove(u3);
System.out.print("移除后元素\n");
for (Object object : alist) {
System.out.println(object);
}
System.out.println();
System.out.print("是否存在u2?");
if (alist.contains(u2)) {
System.out.println("存在对象");
}else{
System.out.println("不存在");
}
for (int i = 0; i
if (use.getUname().equals("u004")) {
System.out.println("元素存在,修改密码");
use.setPassword("888888");
System.out.println("修改密码成功");
break;
}
}
for(Object s:alist){
System.out.println(s+"\t");
}
LinkedList list=new LinkedList();
User u2=new User("u002","123456");
User u3=new User("u003","123456");
User u4=new User("u004","123456");
User u5=new User("u005","123456");
list.add(u1);
list.add(u2);
list.addFirst(u3);//添加第1个索引位置
list.addLast(u4);//添加到最后一个索引位置,但是后面添加的元素将在该元素后面
list.add(u5);
System.out.println("查看集合所有元素");
for (Object ob : list) {
System.out.println(ob);
}
System.out.println("移除元素");
list.removeLast();//移除最后一个元素
for (Object ob : list) {
System.out.println(ob);
}
5-Set集合
存储的元素是无序的、不可重复的
HashSet:可以添加null值,线程不安全
LinkedHashSet:遍历时效率比较高
TreeSet:存入的元素需要排序,按照指定的顺序遍历
// set集合无序,不可重复
Set set=new HashSet();
set.add("呵呵");
set.add("呵呵");
set.add("cc");
set.add("哈哈");
System.out.println("集合大小:"+set.size());
Iterator it=set.iterator();
String s=(String)it.next();
System.out.print(s+"\t");
}
Map的key不允许重复
TreeMap、Hashtable(Properties)
2)接口常用方法
Object put(Object key, Object val) 以“键-值对”的方式进行存储
Object get (Object key) 根据键返回相关联的值,如果不存在指定的键,返回null
Object remove (Object key) 删除由指定的键映射的“键-值对”
int size() 返回元素个数
Set keySet () 返回键的集合
Collection values () 返回值的集合
booleancontainsKey(Object key) 如果存在由指定的键映射的“键-值对”,返回true
//创建Map的实例
Map
//添加数据到map中
map.put("s001", "tom");
map.put("s002", "lucy");
map.put("s002", "lily");
//map中key不可重复
System.out.println("map大小:"+map.size());
//获取map中元素,需要强转
String s2=(String)map.get("s002");
System.out.println("获取map中元素:"+s2);
//判断集合中是否存在某个key
if (map.containsKey("s001")) {
System.out.println("s001存在");
}
if(map.containsValue("lily")){
System.out.println("value:lily存在\n");
}
Set
System.out.println("循环打印key的集合");
Iterator
while (it.hasNext()) {
System.out.print(it.next()+"\t");
System.out.println("\n循环打印value值的集合");
Collection
Iterator
while(it2.hasNext()){
System.out.print(it2.next()+"\t");
}
迭代器Iterator实现遍历
增强性for循环
解决强制类型转换时容易出现的异常问题
保证了数据的安全
使用泛型不需要墙砖
Map
//添加
map.put("u001",new User("admin","admin"));
map.put("u002",new User("user","user"));
User u= (User)map.get("u002");
//增强型for迭代key的集合
for (String key:map.keySet()) {
System.out.println("key="+key);
System.out.println("value="+map.get(key));
}
for (User value:map.values()) {
System.out.println(value);
}
举例:public static void main(String[] args) {
HashMap
hmap.put("1001", "学生A");
hmap.put("1002", "学生B");
hmap.put("1003", "学生C");
Set
Collection
for(String sno:hmap.keySet()){
System.out.println(hmap.get(sno));
}
}
上一篇:Spring属性编辑器详解