77@365Java中集合框架中List的用法…
2016-09-23 20:06
351 查看
用容器模拟数据库,进行增删改查操作,用ArrayList实现对用户(User.java)的增、删、改、查
ArrayList实现类
1:默认构造ArrayList对象是10个大小的数组
2:如果数组已存满,就需要扩充动态数组:算法是:(原数组长度 *3/2)+1
3:内部使用动态数组实现
4:如果我们已知元素个数,那么可以使用指定初始容量的构造方法创建
ArrayList对象,这样我们就可以有效的避免扩充次数过多,从而提高
效率。
5:使用插入或者删除操作,会导致数组需要重新排列,会影响性能,尽量 少用!
Vectors实现类:
1:使用动态数组
2:默认的构造方法初始化定量为10
3:扩充方式,如果有增量:当前的容量+增量;如果没有增量,当前
容量*2.
4:线程安全
LinkedList实现类:
1:使用双向链表实现
2:优点,适合插入,删除很方便
题目思路:建立三个类
User.class
用户类
UserService.class
用户管理类
TestUser.class 测试类
User.class:
package
java254to269Homework;
public class User {
private String name;
private int age;
private char sex;
public User(String name, int age, char sex)
{
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public User() {
super();
// TODO Auto-generated constructor
stub
}
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 char getSex() {
return sex;
}
public void setSex(char sex)
{
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age +
", sex=" + sex + "]";
}
}
UserSrevice.class:
package
java254to269Homework;
import java.util.ArrayList;
import java.util.List;
public class UserService {
private List users;
public UserService(){
users=new ArrayList();
}
public void add(User user){
users.add(user);
System.out.println("添加"+user.getName()+"完毕");
}
public void update(User
user){
User
u2=index(user.getName());
if(u2==null){
return;
}
//修改属性
u2.setAge(user.getAge());
u2.setSex(user.getSex());
}
public void delete(String
name){
User u=index(name);
if(u==null){
return;
}
users.remove(u);
}
public User index(String
name){
for(int i=0;i
User u=users.get(i);
if(u.getName().equals(name)){
System.out.println("恭喜您查找成功:他的名字是"+u.getName()+"年龄"
+u.getAge()+"性别"+u.getSex());
return u;
}
}
return null;
}
public void print(){
for (int i = 0; i < users.size(); i++)
{
System.out.println(users.get(i));
}
}
}
TestUser.class:
package java254to269Homework;
public class TestUser {
public static void main(String[] args) {
User u1=new User("明明",18,'男');
User u2=new User("星星",19,'男');
User u3=new User("美美",17,'女');
User u4=new User("甜甜",16,'女');
User u5=new User("宝宝",17,'女');
UserService us=new UserService();
us.add(u1);
us.add(u2);
us.add(u3);
us.add(u4);
us.add(u5);
us.print();
//查找
User uu1=us.index("宝宝");
System.out.println(uu1.toString());
//修改
User u6=new User("甜甜",18,'男');
us.update(u6);
//移除
us.delete("宝宝");
us.print();
}
}
ArrayList实现类
1:默认构造ArrayList对象是10个大小的数组
2:如果数组已存满,就需要扩充动态数组:算法是:(原数组长度 *3/2)+1
3:内部使用动态数组实现
4:如果我们已知元素个数,那么可以使用指定初始容量的构造方法创建
ArrayList对象,这样我们就可以有效的避免扩充次数过多,从而提高
效率。
5:使用插入或者删除操作,会导致数组需要重新排列,会影响性能,尽量 少用!
Vectors实现类:
1:使用动态数组
2:默认的构造方法初始化定量为10
3:扩充方式,如果有增量:当前的容量+增量;如果没有增量,当前
容量*2.
4:线程安全
LinkedList实现类:
1:使用双向链表实现
2:优点,适合插入,删除很方便
题目思路:建立三个类
User.class
用户类
UserService.class
用户管理类
TestUser.class 测试类
User.class:
package
java254to269Homework;
public class User {
private String name;
private int age;
private char sex;
public User(String name, int age, char sex)
{
super();
this.name = name;
this.age = age;
this.sex = sex;
}
public User() {
super();
// TODO Auto-generated constructor
stub
}
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 char getSex() {
return sex;
}
public void setSex(char sex)
{
this.sex = sex;
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age +
", sex=" + sex + "]";
}
}
UserSrevice.class:
package
java254to269Homework;
import java.util.ArrayList;
import java.util.List;
public class UserService {
private List users;
public UserService(){
users=new ArrayList();
}
public void add(User user){
users.add(user);
System.out.println("添加"+user.getName()+"完毕");
}
public void update(User
user){
User
u2=index(user.getName());
if(u2==null){
return;
}
//修改属性
u2.setAge(user.getAge());
u2.setSex(user.getSex());
}
public void delete(String
name){
User u=index(name);
if(u==null){
return;
}
users.remove(u);
}
public User index(String
name){
for(int i=0;i
User u=users.get(i);
if(u.getName().equals(name)){
System.out.println("恭喜您查找成功:他的名字是"+u.getName()+"年龄"
+u.getAge()+"性别"+u.getSex());
return u;
}
}
return null;
}
public void print(){
for (int i = 0; i < users.size(); i++)
{
System.out.println(users.get(i));
}
}
}
TestUser.class:
package java254to269Homework;
public class TestUser {
public static void main(String[] args) {
User u1=new User("明明",18,'男');
User u2=new User("星星",19,'男');
User u3=new User("美美",17,'女');
User u4=new User("甜甜",16,'女');
User u5=new User("宝宝",17,'女');
UserService us=new UserService();
us.add(u1);
us.add(u2);
us.add(u3);
us.add(u4);
us.add(u5);
us.print();
//查找
User uu1=us.index("宝宝");
System.out.println(uu1.toString());
//修改
User u6=new User("甜甜",18,'男');
us.update(u6);
//移除
us.delete("宝宝");
us.print();
}
}
相关文章推荐
- JAVA学习【7】集合框架与Arraylist、Linkedlist、HashSet的基本用法
- java中的集合框架LinkedList 简单用法
- JAVA常用集合框架用法详解基础篇二之Colletion子接口List
- Java中集合容器类List和Set的用法
- java基础-- 集合框架入门 及 List集合
- Java基础之集合框架——使用真的的链表LinkedList<>(TryPolyLine)
- Java学习第14天:集合框架零接触和基本理解(List和Set)
- 黑马程序员——java基础拾遗之集合框架(一) List 和 Set
- 黑马程序员_java_集合框架_Collection_List_Set_Map_泛型
- Java中集合容器类List和Set的用法
- Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator
- JAVA基础学习之 Map集合、集合框架工具类Collections,Arrays、可变参数、List和Set集合框架什么时候使用等(4)
- java 中list,set,map集合的用法和区别
- 黑马程序员_JAVA学习日记_JAVA中API:集合框架1(Collection,List,Set及其子类和迭代器的应用)
- Java基础---集合框架---迭代器、ListIterator、Vector中枚举、LinkedList、ArrayList、HashSet、TreeSet、二叉树、Comparator
- Java中集合容器类List和Set的用法
- Java中集合容器类List和Set的用法
- 黑马程序员_Java第14天知识总结_集合类(集合框架)_Collection_迭代器_List_Set_HashSet
- 黑马程序员java学习—集合框架List和Set
- java 集合框架之LinkedList及ListIterator实现源码分析