java基础_集合List与Set接口
- List接口继承了Collection的方法 当然也有自己特有的方法向指定位置添加元素 add(索引,添加的元素);
- 移除指定索引的元素 remove(索引)
- 修改指定索引的元素 set(索引,修改的元素)
package com.List集合; import java.util.ArrayList;
import java.util.List; public class Demo01 { public static void main(String[] args) {
/*
* add(索引,插入的元素)方法
*/
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add(1, "q");
System.out.println(list); /*
* 元素修改set(索引,修改的元素)
*/
list.set(0, "w");
System.out.println(list); list.remove(0);
System.out.println(list);
list.remove("b");
System.out.println(list); } }- ArrayList集合 在这里我就不多介绍了 (查找元素快,增删慢)
- LinkedList集合 (查找元素慢,增删快)
- LinkedList集合几个方法需要掌握
- addFrist() 在集合的首部添加元素
- addLast() 在集合的尾部添加元素
- removeFirst() 移除集合首部的元素
- removeLast() 移除集合尾部的元素
- getFrist() 获取集合首部的元素
- getLast() 获取集合尾部的元素
- isEmpty() 判断集合是否为空
LinkedList<String> linkedList = new LinkedList<>();
linkedList.add("a");
linkedList.add("a");
linkedList.add("b");
linkedList.add("a"); linkedList.addFirst("0");
linkedList.addLast("9");
System.out.println(linkedList); linkedList.removeLast();
System.out.println(linkedList);
linkedList.removeFirst();
System.out.println(linkedList); String first = linkedList.getFirst();
System.out.println(first);
String last = linkedList.getLast();
System.out.println(last); boolean b = linkedList.isEmpty();
System.out.println(b);- Set接口(无序,不重复的)
- 我们直接学习HashSet接口
- HashSet当你存储相同元素时,是添加不进去的 他会判断集合中是否存在,这里我们用自定义的引用类型说明
package com.Set集合; public class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public Person() {
super();
// TODO Auto-generated constructor stub
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + age;
result = prime * result + ((name == null) ? 0 : name.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Person other = (Person) obj;
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
} }这里注意我们需要重写HashClod方法与equlas()方法 当然在打印的时候需要重写toString()方法
public static void main(String[] args) {
HashSet<Person> hashSet = new HashSet<>();
hashSet.add(new Person("张三",12));
hashSet.add(new Person("李四",12));
hashSet.add(new Person("张三",12));
hashSet.add(new Person("张三",21));
// System.out.println(hashSet);
Iterator<Person> iterator =hashSet.iterator();
while(iterator.hasNext()){
Person next = iterator.next();
System.out.println(next);
}
}
}
//执行结果为:张三 12
李四 12
张三 21- 这就是HashSet的去重复元素的功能 结果是无序的
- Set接口下还有一个LinkedHashSet集合,这是弥补了Set无序的缺点
public class Demo02_LinkedHashSet {
public static void main(String[] args) {
LinkedHashSet<String> hashSet = new LinkedHashSet<>();
hashSet.add("a");
hashSet.add("b");
hashSet.add("c");
hashSet.add("d");
//增强for遍历
for (String string : hashSet) {
System.out.print(string+" ");
}
//迭代器遍历
Iterator<String> iterator = hashSet.iterator();
while(iterator.hasNext()){
String str = iterator.next();
System.out.println(str);
} System.out.println(hashSet);
}
java基础_集合List与Set接口的更多相关文章
- Java基础之集合框架(Collection接口和List接口)
首先我们说说集合有什么作用. 一.集合的作用 1.在类的内部,对数据进行组织: 2.简单而快速的搜索大数量的条目: 3.有的集合接口,提供一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关 ...
- Java基础--说集合框架
版权所有,转载注明出处. 1,Java中,集合是什么?为什么会出现? 根据数学的定义,集合是一个元素或多个元素的构成,即集合一个装有元素的容器. Java中已经有数组这一装有元素的容器,为什么还要新建 ...
- java基础-Map集合
java基础-Map集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Map集合概述 我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它 ...
- 第6节:Java基础 - 三大集合(上)
第6节:Java基础 - 三大集合(上) 本小节是Java基础篇章的第四小节,主要介绍Java中的常用集合知识点,涉及到的内容包括Java中的三大集合的引出,以及HashMap,Hashtable和C ...
- Java基础之 集合体系结构(Collection、List、ArrayList、LinkedList、Vector)
Java基础之 集合体系结构详细笔记(Collection.List.ArrayList.LinkedList.Vector) 集合是JavaSE的重要组成部分,其与数据结构的知识密切相联,集合体系就 ...
- Java中的集合(十一) 实现Map接口的TreeMap
Java中的集合(十一) 实现Map接口的TreeMap 一.TreeMap简介(基于JDK1.8) TreeMap是基于红黑树数据结构,是一个key-value的有序集合,该映射根据其键的自然顺序进 ...
- java基础技术集合面试【笔记】
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,Ha ...
- 第二十八节:Java基础-进阶继承,抽象类,接口
前言 Java基础-进阶继承,抽象类,接口 进阶继承 class Stu { int age = 1; } class Stuo extends Stu { int agee = 2; } class ...
- Java中的集合(十三) 实现Map接口的Hashtable
Java中的集合(十三) 实现Map接口的Hashtable 一.Hashtable简介 和HashMap一样,Hashtable采用“拉链法”实现一个哈希表,它存储的内容是键值对(key-value ...
随机推荐
- scrapy 知乎用户信息爬虫
zhihu_spider 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo,下载这些数据感觉也没什么用,就当为大家学习scrapy提供一个例子吧.代码地 ...
- Android数据加密之异或加密算法
前言: 这几天被公司临时拉到去做Android IM即时通信协议实现,大致看了下他们定的协议,由于之前没有参与,据说因服务器性能限制,只达成非明文传递,具体原因我不太清楚,不过这里用的加密方式是采用异 ...
- JavaScript常见的五种数组去重的方式
▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...
- Asp.NET + SQLServer 部署注意事项
1. 内存设置最大值(如果不设置, 会造成内存占用太大,带来性能问题) IIS 设置最大内存 sqlserver 设置最大内存
- MySQL,MariaDB:Undo | Redo [转]
本文是介绍MySQL数据库InnoDB存储引擎重做日志漫游 00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版 ...
- 亡命之徒aaaaaa.......chao
前端是一个看似入门门槛不高,但要学好很难的领域.前端的知识体系庞杂又松散,技术演进快,如果摸不清脉络的话很容易陷入盲人摸象的困境甚至跑偏.其实只要掌握了正确的方法,学习前端和学好前端就只是个时间问题. ...
- 开源发布:VS代码段快捷方式及可视化调试快速部署工具
前言: 很久前,我发过两篇文章,分别介绍自定义代码版和可视化调试: 1:Visual Studio 小技巧:自定义代码片断 2:自定义可视化调试工具(Microsoft.VisualStudio.De ...
- 工大助手(C#与python交互)
工大助手(爬虫--C#与python交互) 基本内容 工大助手(桌面版) 实现登陆.查成绩.计算加权平均分等功能 团队人员 13070046 孙宇辰 13070003 张帆 13070004 崔巍 1 ...
- (转)使用 SCons 轻松建造程序
在软件项目开发过程中,make 工具通常被用来建造程序.make 工具通过一个被称为 Makefile 的配置文件可以自动的检测文件之间的依赖关系,这对于建造复杂的项目非常有帮助,然而,编写 Make ...
- Egret3D研究报告(二)从Unity3D导出场景到Egret3D
Egret3D暂时没有场编的计划,但是我们知道unity3D是一个很好的场编. 有一些游戏即使不是使用Unity3D开发,也使用Unity3D做场编.这里就不点名了,而且并不在少数. 我们就这么干. ...