JAVA坎坷之路(7 day)

编程开发   © 文章版权由 admin 解释,禁止匿名转载

#楼主# 2022-6-26

[滑稽]今天必肝完集合

// ArrayList集合在查询元素十速度很快 但是在增加或删除元素时效率较低
// 为了克服这个局限性 可以使用List接口的另一个实现了LinkedList
// LinkedList内部维护了一个双向链表 链表中的每一个元素都是用引用的方式来记住它的前一个元素和后一个元素
// 从而可以将所有的元素彼此连接起来
// 当插入一个元素时,只需要修改元素之间的这种引用关系即可,删除一个节点亦是如此
// 所以LinkedList在进行元素的删除或增加操作时效率很高 但同样查询效率较低

//注意 这里没有指定集合类型 可能会存在安全隐患 所以集合类型需要指定 我这里为了演示就不指定类型了
LinkedList list = new LinkedList();
// 插入指定元素
list.add("aa");
// 将指定元素插入集合开头
list.addFirst("bb");
// 将指定元素插入元素结尾
list.addLast("cc");
// 返回集合的第一个元素
list.getFirst();
// 返回集合的最后一个元素
list.getLast();
// 删除并返回集合的第一个元素
list.removeFirst();
// 删除并返回集合的最后一个元素
list.removeLast();
/**
* Iterator接口
* 当需要遍历集合中的所有元素时 可以使用Iterator迭代访问(即遍历)
* 因此Iterator也成为迭代器
* 当前我前面也使用过遍历,但不是Iterator迭代器
* 但没关系 一会就到那部分内容
*/
ArrayList list = new ArrayList>();
list.add("aa");
list.add("bb");
list.add("cc");

// 使用迭代器遍历集合元素
Iterator iterator = list.iterator();
// hashNext判断是否存在下一个元素 但是这里需要注意 如果没有元素那么就会报异常
while (iterator.hasNext())
{
// next取出元素
String next = iterator.next();
System.out.println(next);
}
刚搞了一个学生管理系统案例
[滑稽][滑稽][滑稽]
想了一下还是直接发源代码
4楼
呵呵二爷爷 2022-6-26
/**
* foreach循环
* 这便是 之前我使用的循环
* 迭代器虽然不错但是写法繁琐
* 因此jdk5开始便提供了foreach循环
* 语法格式
* for(容器中的元素类型 临时变量:容器变量)
* {}
*/
ArrayList list = new ArrayList>();
list.add("aa");
list.add("bb");
list.add("cc");
// 使用foreach循环遍历
for (String s : list) {
System.out.println(s);
}
// foreach局限性
// 当遍历集合和数组时 只能访问 不能对其进行修改
5楼
呵呵二爷爷 2022-6-26
main方法内容 图片上main上面的内容

public static void main(String[] args){

// 使用list集合完成一个小案例
// 学生管理系统
// while死循环防止程序退出
while (true)
{
String home = huluxia.home();

if (home.equals("1"))
{
System.out.println("*********************");
System.out.println("查询功能");
huluxia.getAll();
}
else if (home.equals("2"))
{
System.out.println("*********************");
System.out.println("添加功能");
huluxia.addList();
}
else if (home.equals("3"))
{
System.out.println("*********************");
System.out.println("删除功能");
huluxia.delete();
}
else if (home.equals("4"))
{
System.out.println("*********************");
System.out.println("修改功能");
huluxia.update();
}
else if (home.equals("5"))
{
System.out.println("*********************");
System.out.println("退出功能");
huluxia.quit();
}
}

}

6楼
呵呵二爷爷 2022-6-26
时间短
写出的程序难免差劲了点
[滑稽][滑稽][滑稽]
大家可以自行优化
7楼
呵呵二爷爷 2022-6-26
// 查询功能
public void getAll()
{
System.out.println("所有学生信息如下:");
for (Object o : list) {
System.out.println(o);
}
}
8楼
呵呵二爷爷 2022-6-26
// 添加功能
public void addList()
{
System.out.println("请输入学生的学号");
String nextNum = sc.next();
boolean contains = Arrays.toString(list.toArray()).contains(nextNum);
if(contains)
{
System.out.println("学号已存在...请勿重复输入");
}
else
{
System.out.println("请输入学生的姓名");
String nextName = sc.next();
System.out.println("请输入学生的年龄");
String nextAge = sc.next();
System.out.println("请输入学生的居住地");
String nextAdderss = sc.next();

int size = list.size();

list.add("学号:"+nextNum+",姓名:"+nextName+",年龄:"+nextAge+",居住地:"+nextAdderss+"编号:"+size);
System.out.println("添加成功!");
}
}
9楼
呵呵二爷爷 2022-6-26
// 删除功能
public void delete()
{
System.out.println("请输入学号删除:");
String next = sc.next();
boolean contains = Arrays.toString(list.toArray()).substring(Arrays.toString(list.toArray()).indexOf("学号"),Arrays.toString(list.toArray()).lastIndexOf("姓名")).contains(next);
if(contains)
{
for (Object o : list) {
if(o.toString().contains(next))
{
list.remove(Integer.valueOf(String.valueOf(o).substring(o.toString().lastIndexOf(":")+1)));
System.out.println("删除成功");
break;
}
}
}
else
{
System.out.println("学号不存在.......");
}
}
// 修改功能
public void update()
{
System.out.println("请输入学号修改:");
String next = sc.next();
boolean contains = Arrays.toString(list.toArray()).substring(Arrays.toString(list.toArray()).indexOf("学号"),Arrays.toString(list.toArray()).lastIndexOf("姓名")).contains(next);
if(!contains){
System.out.println("学号不存在");
}
else
{
for (Object o : list) {
if(o.toString().substring(o.toString().indexOf("学号")+2,o.toString().indexOf("姓名")).contains(next))
{
System.out.println("请输入学生的姓名");
String nextName = sc.next();
System.out.println("请输入学生的年龄");
String nextAge = sc.next();
System.out.println("请输入学生的居住地");
String nextAdderss = sc.next();
list.set(Integer.parseInt(String.valueOf(o).substring(o.toString().lastIndexOf(":")+1)),"学号:"+next+",姓名:"+nextName+",年龄:"+nextAge+",居住地:"+nextAdderss+"编号:"+String.valueOf(o).substring(o.toString().lastIndexOf(":")+1));
System.out.println("修改成功");
break;
}
}
}
}

评论

登录后才可发表内容
  • 主题

    23

  • 帖子

    325

  • 关注者

    0

Copyright © 2019 凯特网.   Powered by HYBBS 2.3.4  

Runtime:0.0996s Mem:2147Kb