Java学习笔记2-1

2.对象容器(1)

  今天学习一下Java里面的一些容器的基本功能,今天先来Arraylist。

一、Arraylist
  容器类主要是为了存放一些按某些方式排列的对象,arraylist是一种容器,相对数组那种静态分配存储空间,容器动态分配空间更为节省,而且通常容器内部有固定套路的方法来实现数据的插入、删除、修改等等操作,非常方便,而且效率通常很高。一般格式:
  容器类型<元素类型>(例如Arraylist<String>)
1.创建(举例):

ArrayList<String> k=new ArrayList<String>();

2.添加元素:

    String s="ff";
    int index=1;
    k.add(s);
    k.add(index,s);//表示在第一个位置插入s,注意索引若为不存在的数会出错

3.获取ArrayList中元素的个数

    int size=k.size();

4.读取元素

    String s=new String();
    s=k.get(index);//读取相应位置的元素

5.删除元素

    k.remove(index);

6、判断是否已经存在某对象

    boolean p=k.contain(s);

 以设计一个记事本为例,其主要有以下几个功能:

  • 能存储记录
  • 不限制能存储的记录的数量
  • 能查看存进去的每一条记录
  • 能删除一条记录
  • 能列出所有的记录

 所以我们据此设计几个接口:
  1.Add(String s);   //添加记录
  2.Get(int index);  //查看某条记录
  3.Remove(int index); //删除某条记录
  4.list();       //列出所有记录
  5.getsize();     //查看记录数目

public class Note {
	private ArrayList<String> k=new ArrayList<String>();
	public void add(String s)
	{
		k.add(s);
	}
	public String get(int index)
	{
		return k.get(index);
	}
	public void remove(int index)
	{
		k.remove(index);
	}
	public int getsize()
	{
		return k.size();
	}
	public String[] list()
	{
		String []s=new String[k.size()];
		k.toArray(s);
		return s;
	}
	
	public static void main(String[] args) {
		Note notes=new Note();
		System.out.println("hello");
		Scanner in=new Scanner(System.in);
		int num=-2;
		String[] temp;
		String f=new String();
		int no=1;
		System.out.println(" 0:add list
 1:remove list 
 2:getsize
 3:print all list");

		while(num!=-1)
		{
			num=in.nextInt();		
			in.nextLine();			//caution!!
			
			switch (num)
			{
			case 0:
				System.out.println("add what?? enter is over");
				notes.add(in.nextLine());
				break;
			case 1:
				System.out.println("remove what?? input the num");
				notes.remove(in.nextInt());
				break;
			case 2:
				System.out.println("the size of notes is:"+notes.getsize());
				break;
			case 3:
				System.out.println("the list of notes is:");
				temp=new String[notes.getsize()];
				temp=notes.list();
				for(String a:temp)			
				{
					System.out.println(no+"."+a);
					no++;
				}
				break;
			}
			no=1;			
		}
		
	}
}

  比较简单,纯当练习练习,也没什么价值,大佬就不要看了。
  另外这段程序在连续使用nextInt()和nextLine()时,出了一点小问题,类似C语言,由于nextInt()好像不会读取你输入结束的回车键' ',这时不做处理的话,nextLine()就会把' '当作输入的字符读走,并认为输入结束。解决办法是类似在C语言中加入getchar()一样,之间插入一个nextLine(),就不会受到换行符的影响了。另外分享一个讲解nextInt(),nextLine()与next()区分的blog:https://www.bbsmax.com/A/kjdwb1L65N/

原文地址:https://www.cnblogs.com/wmzclever/p/12619965.html