Java动态数组添加数据的方法与应用示例

本文实例讲述了Java动态数组添加数据的方法与应用。分享给大家供大家参考,具体如下:

输入客户的姓名,客户的人数不定。待输入完成后,请打印出客户的名单,并定义一个方法查询客户是否在这些客户中。

代码示例:

package com.jredu.ch06.exer;
import java.util.Arrays;
import java.util.Scanner;
public class CustomBiz {
    public String[] custom;
    public void addName(String name) {
        //添加姓名
        if(custom==null) { //若数组为空,定义数组的长度为1
            custom=new String[1];
            custom[0]=name;
        } else {
            //若数组不为空,把数组复制出一个新的,在原数组的基础上加1
            String[] copy=Arrays.copyOf(custom, custom.length+1);
            //把原先数组制空
            custom=null;
            //把新数组给原先这个数组
            custom=copy;
            custom[custom.length-1]=name;
        }
    }
    /**
     * 打印姓名
     */
    public void showNames() {
        System.out.println("********************");
        System.out.println("\t客户姓名");
        System.out.println("********************");
        for(String name:custom) {
            System.out.print(name+" ");
        }
        System.out.println();
    }
    /**
     * 查找客户
     * @param name
     * @return 查询结果
     */
    public boolean search(String name) { //带boolean返回值的有参方法
        System.out.println("******查找结果******");
        for(int i=0;i<custom.length;i++) {
            if(custom[i].equals(name)) {
//                System.out.println("找到了");
                return true;
            }
        }
        return false;
//        System.out.println("没找到");
    }
    public static void main(String[] args) {
        CustomBiz biz=new CustomBiz();
        Scanner in=new Scanner(System.in);
        while(true) {
            System.out.print("请输入客户的姓名:");
            biz.addName(in.next());  //把输入的数据传递到addName方法中
            System.out.print("是否继续(y/n)");
            if(!in.next().equals("y")) {
                break;
            }
        }
        //结束时,打印结果
        biz.showNames();
        //查找
        System.out.print("请输入查找姓名:");
        if(biz.search(in.next())) {
            System.out.println("\t找到了");
        } else {
            System.out.println("\t没找到");
        }
    }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

(0)

相关推荐

  • java数据结构与算法之双向循环队列的数组实现方法

    本文实例讲述了java数据结构与算法之双向循环队列的数组实现方法.分享给大家供大家参考,具体如下: 需要说明的是此算法我并没有测试过,这里给出的相当于伪代码的算法思想,所以只能用来作为参考! package source; public class Deque { private int maxSize; private int left; private int right; private int nItems; private long[] myDeque; //constructor p

  • Java数组模拟优先级队列数据结构的实例

    优先级队列 如果我们给每个元素都分配一个数字来标记其优先级,不妨设较小的数字具有较高的优先级,这样我们就可以在一个集合中访问优先级最高的元素并对其进行查找和删除操作了.这样,我们就引入了优先级队列 这种数据结构. 优先级队列(priority queue) 是0个或多个元素的集合,每个元素都有一个优先权,对优先级队列执行的操作有(1)查找(2)插入一个新元素 (3)删除 一般情况下,查找操作用来搜索优先权最大的元素,删除操作用来删除该元素 .对于优先权相同的元素,可按先进先出次序处理或按任意优先

  • Java中动态地改变数组长度及数组转Map的代码实例分享

    动态改变数组的长度 /** * Reallocates an array with a new size, and copies the contents * * of the old array to the new array. * * @param oldArray the old array, to be reallocated. * * @param newSize the new array size. * * @return A new array with the same co

  • Java版C语言版简单使用静态语言实现动态数组的方法

    动态语言相对于静态语言的一个优势,就是数组可以不需要预先确定大小,对于一些数组长度不确定的场景下是非常有用的.像PHP,只需要声明一下数组 $arr = array() 然后就可以直接 $arr[] = 1,$arr[] = 2,$arr[] = 3...这样一直加元素了,删除一个元素就直接使用unset($arr[1]),元素的空间就被释放了,而C和JAVA原生的数组就没有这么方便,声明的时候就必须先预先确定长度,由编译器分配相应的内存空间.不过通过一些巧妙的做法,也是可以实现一样的功能的,这

  • Java数组动态增加容量过程解析

    Java数组初始化需要指定数组容量,但是在许多情况下需要动态扩充容量.有两种方法可以实现: 1.采用ArrayList类数组,它可以在需要时自动扩容: 2.采用System.arraycopy方法实现,其声明为:araycopy(Object src,int srcPos,Object dest,int destPos, int length) 写个代码就可明白了,示例如下: import java.util.*; class Test { public static void main(Str

  • Java中一维二维数组的静态和动态初始化

    今天我们要开始来讲讲Java中的数组,包括一维数组和二维数组的静态初始化和动态初始化 数组概述: 数组可以看成是多个相同类型数据的组合,对这些数据的统一管理; 数组变量属于引用数据类型,数组也可以看成是对象,数组中的每一个元素相当于该对象的成员变量; 数组中的元素可以是任何数据类型,包括基本数据类型和引用数据类型; 一维数组的声明: 声明方式: 例如; int a [ ]  = new int [3]; Java语言中 声明是不能指定其长度[数组中元素的个数]; 非法声明; int a [5];

  • Java中使用数组实现栈数据结构实例

    栈是Java语言中最重要的数据结构之一,它的实现,至少应该包括以下几个方法: 1.pop() 出栈操作,弹出栈顶元素. 2.push(E e) 入栈操作 3.peek() 查看栈顶元素 4.isEmpty() 栈是否为空 另外,实现一个栈,还应该考虑到几个问题: 1.栈的初始大小以及栈满以后如何新增栈空间 2.对栈进行更新时需要进行同步 简单示例,使用数组实现栈,代码如下: 复制代码 代码如下: public class Stack<E> { // Java 不支持泛型数组,如需使用,请使用J

  • java获取两个数组中不同数据的方法

    本文实例讲述了java获取两个数组中不同数据的方法.分享给大家供大家参考.具体实现方法如下: public static <T> List<T> compare(T[] t1, T[] t2) { List<T> list1 = Arrays.asList(t1); List<T> list2 = new ArrayList<T>(); for (T t : t2) { if (!list1.contains(t)) { list2.add(t)

  • Java数组添加元素实例

    以下实例演示了如何使用sort()方法对Java数组进行排序,及如何使用 insertElement () 方法向数组插入元素, 这边我们定义了 printArray() 方法来打印数组: MainClass.java 文件: import java.util.Arrays; public class MainClass { public static void main(String args[]) throws Exception { int array[] = { 2, 5, -2, 6,

  • java 实现读取txt文本数据并以数组形式一行一行取值

    首先来读取txt文本中的内容,输出在控制台,直接上代码: import java.io.BufferedReader; import java.io.File; import java.io.FileReader; public class ReadFiledata { public static String txt2String(File file){ StringBuilder result = new StringBuilder(); try{ BufferedReader br = n

  • java通过复选框控件数组实现添加多个复选框控件示例分享

    思路如下: 创建JPanel面板对象:使用JPanel类的setLayout(0,4)方法设置网格布局管理器,即列数为4,行数自动调节:创建一个字符串型一维数组作为控件文本数组:创建一个JCheckBox型一维数组作为控件数组:使用for循环遍历控件数组,初始化数组中的复选框组件,使用JPanel类的add()方法把数组元素(即每个复选框)添加到面板中.代码如下: 复制代码 代码如下: package cn.edu.xidian.crytoll; import java.awt.BorderLa

  • Java实现数组去除重复数据的方法详解

    本文实例讲述了Java实现数组去除重复数据的方法.分享给大家供大家参考,具体如下: 前一段时间被面试问到:如果一个数组中有重复元素,用什么方法可以去重?一时间会想到用一种方法,但是后来查阅资料后发现,有好多方法可以实现,现在就总结一下,比较简单的几种. 一.用List集合实现 int[] str = {5, 6, 6, 6, 8, 8, 7,4}; List<Integer> list = new ArrayList<Integer>(); for (int i=0; i<s

随机推荐