「java数字集合」java集合数据
本篇文章给大家谈谈java数字集合,以及java集合数据对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java读txt中的数字集合,每个数字之间有空格隔开,怎么把每个数字的集合放到数组或list里?
- 2、java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据
- 3、java集合数字排序
- 4、Java数组属于集合吗
- 5、java怎样随机选取一个集合里面的数
- 6、JAVA怎样生成1-100的有顺序的数字集合如(1,2,3,4......100)
java读txt中的数字集合,每个数字之间有空格隔开,怎么把每个数字的集合放到数组或list里?
String value = "XXX XXX XXX..."; // 每个数字之间有空格隔开的字符串
ArrayList ary = new ArrayList(); //存放数字的List对象
StringTokenizer stk = new StringTokenizer(value , " ");
while (stk.hasMoreElements()) {
ary.add(new Integer((String)stk.nextElement()));
// 存放数字,假设你的数字都是整数
}
以上直接写的,没有调试过。 不过大概思路就是这样了,或者你试一下吧
java怎样将集合中的数值数据分区间统计个数:例如(0-1000)有几个人数据,1000-2000有几个数据
集合分组统计处理, 实现的方法很多,简单的写几种方法供参考;(理解后,自行扩展完善)
方法一:(Java8流处理粗略版) 该版本存在的问题:有些区间没有数据,就不打印显示该区间
import java.util.*;
import java.util.stream.*;
public class NumberDemo {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
// 给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
funStream(list, space);
}
private static void funStream(ArrayListInteger list, int space) {
// 使用流处理 把 数字分组
MapString, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {
return "区间:[" + num / space * space + "," + (num / space + 1) * space + ")";// 分组规则
}));
map.forEach((k,v)-{
System.out.println(k);
System.out.println("\t"+v.size()+"个数据");
});
}
}
方法二:(Java8流处理详细版) 就算有的区间是0个数据,照样打印出来
import java.util.*;
import java.util.stream.*;
public class NumberDemo2 {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
// 给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
funStream(list, space);
}
private static void funStream(ArrayListInteger list, int space) {
// 使用流处理 把 数字分组
MapInteger, ListInteger map = list.stream().collect(Collectors.groupingBy((num) - {
return num / space;// 分组规则
}));
// 获取集合里的最大值
OptionalInteger maxop = list.stream().collect(Collectors.maxBy(Integer::compareTo));
int max = maxop.orElse(0);
// 计算出区间的数量
int groups = max % space == 0 ? max / space : max / space + 1;
// 打印结果
for (int i = 0; i groups; i++) {
System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");
System.out.println("\t有" + (map.get(i)==null?0:map.get(i).size()) + "个数据");
// System.out.println("\t"+map.get(i));//把数据打印出来
}
}
}
方法三:(比较传统的方法)
import java.util.*;
public class NumberDemo3 {
public static void main(String[] args) {
ArrayListInteger list = new ArrayListInteger();
int numbers = 10;// 集合里数字的个数
int space = 1000;// 区间的间隔
//给集合里添加数字
Random rd = new Random();
for (int i = 0; i numbers; i++) {
list.add(rd.nextInt(5000)); // 集合里每个数字的范围是0~4999
}
fun(list,space);
}
private static void fun(ArrayListInteger list, int space) {
Collections.sort(list);//排序
int max= list.get(list.size()-1);//取得最大值
int groups = max % space == 0 ? max / space : max / space + 1;//取得区间的数量
HashMapInteger,ArrayListInteger map=new HashMapInteger, ArrayListInteger();//存区间和该区间的数字
for (int i = 0; i groups; i++) {
map.put(i, new ArrayList());
}
//把元素添加到指定的区间
for (int i = 0; i list.size(); i++) {
map.get(list.get(i)/space).add(list.get(i));
}
//打印结果
for (int i = 0; i groups; i++) {
System.out.println("区间:[" + i * space + "," + (i + 1) * space + ")");
System.out.println("\t有"+ map.get(i).size()+"个数据");
//System.out.println("\t"+map.get(i));//把数据打印出来
}
}
}
测试效果如下
区间:[0,1000)
有5个数据
区间:[1000,2000)
有0个数据
区间:[2000,3000)
有1个数据
区间:[3000,4000)
有2个数据
区间:[4000,5000)
有2个数据
java集合数字排序
import java.util.Collections;
import java.util.Comparator;
import java.util.Vector;
public class TestClass {
public static void main(String[] args){
VectorInteger v=new VectorInteger();
v.add(5);
v.add(3);
v.add(2);
v.add(1);
v.add(4);
ComparatorInteger cm = new MyComparator();
Collections.sort(v,cm );
for(Integer x :v)
System.out.print(x + " ");
}
}
class MyComparator implements ComparatorInteger{
public int compare(Integer i1, Integer i2) {
if (i1 i2) return -1;
else if (i1 == i2) return 0;
else return 1;
}
}
Java数组属于集合吗
Java中数组和集合是两个概念
比较浅显的话可以这样理解:
数组长度固定,必须在初始化时确定数组的长度,且数组内存放的元素都是同一类数据,不能存放不同类型的数据。数组是有局限性的“集合”。
集合长度是不固定的,可以存放不同类型的数据,且集合的长度是可变的。
java怎样随机选取一个集合里面的数
java中随机选取一个集合里面的数方法:
很简单,list.get((int)(Math.Random()*list.size()));
2、集合是Set的话:
Object[] obj =set.toArray();
obj[(int)(Math.Random()*obj.length)]
JAVA怎样生成1-100的有顺序的数字集合如(1,2,3,4......100)
可以用Java8的Stream来帮助生成集合,举例如下:
public static void main(String[] args) {
// 起始数字
int start = 1;
// 生成数字的个数
int end = 100;
// 生成1,2,3,4,5...100
ListInteger list = Stream.iterate(start, item - item+1).limit(end).collect(Collectors.toList());
// 生成1,3,5...199
ListInteger list1 = Stream.iterate(start, item - item+2).limit(end).collect(Collectors.toList());
}
生成是比较灵活的,可以定制生成规则,即修改那个item-item+1这个lambda表达式就可以了
java数字集合的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java集合数据、java数字集合的信息别忘了在本站进行查找喔。