从用户获取一组数据(数字或字符),个数不定。在java 怎么把这组数据储存在list中。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从用户获取一组数据(数字或字符),个数不定。在java 怎么把这组数据储存在list中。相关的知识,希望对你有一定的参考价值。

请问这组数据的组织格式是怎么样的?是通过固定分隔符(比如逗号)分隔的字符串,还是已经存放在一个数组中了?
如果已经存放在数组中了,可以直接采用java api提供的java.util.Arrays类提供的静态方法asList将数组转化为一个list即可,具体使用方法如下:
Integer[] array = 1,2,3,4,5,6;
List<Integer> list = Arrays.asList(array); //转化数组为List
for(Integer li : list) //测试list中的元素
System.out.println(li);

当接收到的是通过固定分隔符(比如逗号)分隔的字符串时,比如1,2,3,4,5,6这样格式的数据时,可以先将其分隔后的数据存储到数组中,再将数组转化为list。方法如下:
String str = "1,2,3,4,5,6";
String[] array = str.split(","); //将分隔后的数据存储到数组中
List<String> list = Arrays.asList(array); //转化数组为List
for(String li : list) //测试list中的元素
System.out.println(li);

希望对楼主有帮助。追问

一定要先放入数组中么。怎么直接放入list中。另外,用户可以输入任意数据,我不知道list的size。

追答

可以直接放入list中的。通过add()方法可以存入任何类型的数据,而且没有长度限制,
List datas = new ArrayList();
for(int i=1;i++;i<6) //假设用户输入的数据是1到6
datas.add(i); //通过 add()方法将用户输入的值存入list中。

for(String data: datas ) //测试list中的元素
System.out.println(data);

我这没编译工具,直接敲的,你看看有语法错误没?

参考技术A 假定数组名为arr
List list = new ArrayList();
for(int i = 0; i < arr.length; i++)
list.add(arr[i]);

数据可以不是一个数组,可以是其他的类型。但你必须确定的是:第一、你的数据是可以一个一个的取出来的,这样才能把它们加到list中;第二、作为一个List对象其可以存放任何类型的数而不考虑其数据类型,当然你的jdk要是5.0以后的版本才能存放基本数据类型的数据
参考技术B List<Integer> list = Arrays.asList(array);
一个函数就行了。

在c语言中怎么输入一组数字存储在数组里

从键盘输入100个数(调试程序时可先静态赋初值),并存放到一个数组中。用户输入想要查询的数,从这100个数中用户需要找的数,并把它输出(要求输出详细信息包括:用户输入的数字,在数组中的个数及位置,查询此数所花时间等),若没找到则输出"notfound!"

这是原题,具体的C程序是什么啊?急求!!!!

#define N 100
int main()

int iarray[100];
int num;

for(int i = 0; i < N; i++)

iarray[i] = i*2;


printf("请输入一个数字:");
scanf("%d", &num);

int first = 0;
int last = N-1;
int half = 0;
bool bfind = false;

time_t start, end;
start = time(NULL);

do

half = (first+last)/2;;
if( num == iarray[half])

bfind = true;
break;

else if( num > iarray[half])

first = half + 1;

else

last = half - 1;


while( first <= last );

end = time(NULL);

if(bfind)

printf("num = %d,pos = %d\n",num, half);

else

printf("not found!\n");

printf("endtime = %d, starttime = %d\n", end, start);

printf("使用的时间为:%.16f\n", (double)(end - start)/CLOCKS_PER_SEC);

system("pause");
return 1;
参考技术A #define
N
100
int
main()

int
iarray[100];
int
num;
for(int
i
=
0;
i
<
N;
i++)

iarray[i]
=
i*2;

printf("请输入一个数字:");
scanf("%d",
&num);
int
first
=
0;
int
last
=
N-1;
int
half
=
0;
bool
bfind
=
false;
time_t
start,
end;
start
=
time(NULL);
do

half
=
(first+last)/2;;
if(
num
==
iarray[half])

bfind
=
true;
break;

else
if(
num
>
iarray[half])

first
=
half
+
1;

else

last
=
half
-
1;


while(
first
<=
last
);
end
=
time(NULL);
if(bfind)

printf("num
=
%d,pos
=
%d\n",num,
half);

else

printf("not
found!\n");

printf("endtime
=
%d,
starttime
=
%d\n",
end,
start);
printf("使用的时间为:%.16f\n",
(double)(end
-
start)/CLOCKS_PER_SEC);
system("pause");
return
1;

以上是关于从用户获取一组数据(数字或字符),个数不定。在java 怎么把这组数据储存在list中。的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中怎么输入一组数字存储在数组里

C语言如何获取用户输入的随机个数的一串数字

如何用c语言从一组给定数中找到一个数或者几个数的和使其值最接近指定的数

统计不同字符个数。用户从键盘输入一行字符,编写一个程序,统计并输出其中英文字符数字空格和其他字符的个数

java中输入一组数字,如何固定输入数字个数?

perl中每行有多个要匹配的字符串怎么取?