Java-集合(list接口)

集合

概述
Java语言的设计者对常用的数据结构和算法做了一些规范(接口)和实现(具体实现接口的类)。 所有抽象出来的数据结构和操作(算法)统称为Java集合框架 (Java Collection Framework)。Java程序员在具体应用时,不必考虑数据结构和算法 实现细节,只需要用这些类创建出来一些对象,然后直接应用就可以了,这样就大大提高了编程效率
为什么使用集合框架
如果并不知道程序运行时会需要多少对象,或者需要更复杂方式存储对象----可以使用Java集合框架

Java集合框架包含的内容

集合框架的接口

List接口的实现类

ArrayList 实现的长度可变的数组,在内存中分配连续的空间。 遍历元素和随机访问元素的效率比较高

List接口常用方法

声明 一个list集合,等式左边:接口 右边:实现类 多态
List list=new ArrayList<>() ;
接口定义的方法
追加一条数据
list.add(1);
list.add("a");
list.add(true);
访问某个数据
System.out.println(list.get(0)); //1
System.out.println(list); //[1,a,true]
在指定下标位置插入元素,下标位置必须介于0到个数之间
list.add(1, "abc");
ArrayList中重写了toString方法
System.out.println(list.toString()); //[1,abc,a,true]
size方法:获取list的个数
System.out.println("list的元素个数是"+list.size());
remove方法 :有两个重载(int a)(object o)
1.通过传入具体的元素值来删除,返回删除结果
2.通过传入对应元素的下标来删除元素,返回被删除的元素内容,下标位置在0到最后一个元素下标之间
list.remove("abc");
要删除整数:list.remove((Integer)1)
要删除字符型:list.remove((Character)‘a’)
System.out.println("是否删除成功?"+list.remove("abc")); //返回true
System.out.println("删除的元素:"+list.remove(1)); //返回a

System.out.println("list的元素个数是"+list.size());
判断是否存在某个元素值
System.out.println(list.contains(1)) ;//返回true

LinkedList采用链表存储方式。
插入、删除元素时效率比较高

LinkedList常用方法

LinkedList方法
addAll 向集合当中添加一个集合
List list=new LinkedList<>();
List list2=new LinkedList<>();
Set set=new HashSet<>();
set.add(8);
list2.add(1);
list2.add(2);
list2.add(3);
list.add(0);
list.addAll(list2);
list.addAll(set);
System.out.println(list); //[0,1,2,3,8]
isEmpty()判断集合是否为空
判断一个集合是否为空
if(list!=null&&!list.isEmpty()){
}
clear清空数据,保留对象,重置list
list.clear();
System.out.println(list); // []
list=null;彻底删除,回收空间
indexOf返回对应元素第一次出现的下标
list.add(5);
System.out.println(list.indexOf(5)); //0
lastIndexOf返回对应元素最后一次出现的下标
list.add(5);
System.out.println(list.lastIndexOf(5)); // 1
removeAll从一个集合中删除另一个集合所包含的元素
list.removeAll(list2);
System.out.println(list);
数组和list之间的相互转换
//toArray把集合转换成数组
Object[] arr=list.toArray();
System.out.println(Arrays.toString(arr));
//数组转集合
List l=Arrays.asList(arr);
System.out.println(l);
新闻展示案例
package com.jredu.oop.ch01;

public class Theme {
private int id;
private String title;
private String remark;
public Theme(int id, String title, String remark) {
super();
this.id = id;
this.title = title;
this.remark = remark;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
}
package com.jredu.oop.ch01;

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

public class Ch02 {

public static void main(String[] args) {
// TODO Auto-generated method stub
//声明集合
List list=new ArrayList<>();
//声明要存储的数据
Theme theme=new Theme(1, "主题1", "主题简介");
Theme theme2=new Theme(2, "主题2", "主题简介2");
//添加数据到集合中
list.add(theme);//theme为地址
list.add(theme2);
//显示数据
for(int i=0;i<list.size();i++){
//父类Object强转成子类Theme
Theme t=(Theme)list.get(i);
//通过get方法获取对应属性值
System.out.println(t.getId()+"\t"+t.getTitle()+"\t参与调查 调查结果");
System.out.println("\t"+t.getRemark());
}
}
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值