「java分组排序」javalist分组
本篇文章给大家谈谈java分组排序,以及javalist分组对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、java中如何实现mysql中的group by order by count()功能
- 2、JAVA怎么实现这个分组需求
- 3、java 时间 分组
- 4、javastream排序后分组,还有序吗
- 5、JAVA中对String数组根据字符长度进行分组并且排序
- 6、java 将第二列根据第一列分组实现从小到大排序
java中如何实现mysql中的group by order by count()功能
group by 按照字段中取出值判断是不是相同的组就可以了
order by 排序按照字母、文字、数字排序 count 将结果集放到集合看集合有多大
但是效率在多数情况下不如直接在数据库里
JAVA怎么实现这个分组需求
方法一:把这100个数字按照从小到大的顺序排序,设置两个标记为a、b,a表示取出数字的正序,b表示取出数字的倒序,然后依次取第一个(a)和最后一个(b),假设和为m,
若105m95,放入数组,a++、b++,循环;(循环1)
若m105,b=b+1,返回上一级循环,
若m95, a=a+1,则取m和a对应的数相加,假设和为n,(循环2)
若105n95,把这些数字放入数组,返回上一级循环;
若n105,b=b+1,返回上一级循环;
若n95,进入递归进入循环2;
java 时间 分组
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] date = new String[] { "2014-03-01", "2014-03-03",
"2014-03-04", "2014-03-11", "2014-03-13" };
Object[] result = getResult(date);
String[] startDate = (String[]) result[0];
String[] endDate = (String[]) result[1];
int index = 0;
for (String start : startDate) {
System.out.println(String.format("%d.start:%s end:%s", index + 1,
start, endDate[index]));
index++;
}
}
public static Object[] getResult(String[] date) {
// 对数组进行排序
Arrays.sort(date);
// 声明集合保存结果;
ListString startDate = new ArrayListString();
ListString endDate = new ArrayListString();
// 声明日期格式化格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
for (int index = 1; index date.length; index++) {
try {
String start = date[index - 1];
String end = date[index];
// 判断是否相等或相临;相等或相临将日期分别添加至开始/结束列表,否则单独处理
if ((sdf.parse(end).getTime() - sdf.parse(start).getTime())
/ 1000 / 60 / 60 / 24 = 1) {
startDate.add(start);
endDate.add(end);
index++;
} else {
startDate.add(start);
endDate.add(start);
// 若最后的值执行到此,单独处理
if (index == date.length - 1) {
startDate.add(end);
endDate.add(end);
}
}
start = null;
end = null;
} catch (Exception e) {
System.out.println("转换日期格式异常!");
}
}
return new Object[] { startDate.toArray(new String[] {}),
endDate.toArray(new String[] {}) };
}
javastream排序后分组,还有序吗
有。
javastream排序后分组,还有序,根据字符串类型日期分组,并按照日期升序排序,分组、计数、排列。
排序又称分类。按关键字大小递增或递减的次序,对文件中的全部记录重新排列的过程。是计算机程序设计中的一种重要运算。分内部排序和外部排序两大类。
JAVA中对String数组根据字符长度进行分组并且排序
好像也很复杂...
String[] str = {"1", "2", "3", "66", "54", "513", "323", "12", "121"};
MapInteger, ListString map = new HashMapInteger, ListString(); //按照长度区分数据
SetInteger indexSet = new HashSetInteger(); //长度去重
for (String string : str) {
int length = string.length();
ListString list = map.get(length);
if (list == null) {
list = new ArrayListString();
}
list.add(string);
Collections.sort(list); //默认排序
indexSet.add(length);
map.put(length,list);
}
ListInteger indexList = new ArrayListInteger();
for (Integer integer : indexSet){
indexList.add(integer);
}
Collections.sort(indexList); //长度默认排序
JSONArray jsonArray = new JSONArray();
for (Integer integer : indexList){
ListString valueList = map.get(integer);
String[] strings = valueList.toArray(new String[valueList.size()]);
jsonArray.add(strings);
}
System.out.println(jsonArray.toString());
java 将第二列根据第一列分组实现从小到大排序
public static void main(String[] args) {
// 初始化数据
ListListInteger table = new ArrayList();
ListInteger row1 = new ArrayList(2);
row1.add(0);
row1.add(2);
ListInteger row2 = new ArrayList(2);
row2.add(0);
row2.add(7);
ListInteger row3 = new ArrayList(2);
row3.add(0);
row3.add(1);
ListInteger row4 = new ArrayList(2);
row4.add(1);
row4.add(7);
ListInteger row5 = new ArrayList(2);
row5.add(1);
row5.add(5);
ListInteger row6 = new ArrayList(2);
row6.add(1);
row6.add(2);
ListInteger row7 = new ArrayList(2);
row7.add(1);
row7.add(4);
table.add(row1);
table.add(row2);
table.add(row3);
table.add(row4);
table.add(row5);
table.add(row6);
table.add(row7);
// 分组
MapInteger, ListListInteger groups = new HashMap(2);
for (ListInteger row : table) {
Integer firstCol = row.get(0);
ListListInteger groupItem = groups.getOrDefault(firstCol, new ArrayList());
// 添加到分组
groupItem.add(row);
groups.put(firstCol, groupItem);
}
// 分组内排序
for (ListListInteger groupItem : groups.values()) {
groupItem.sort((item1, item2) - {
return item1.get(1).compareTo(item2.get(1));
});
}
// 打印到控制台
for (Integer groupKey : groups.keySet()) {
ListListInteger groupItem = groups.get(groupKey);
for (ListInteger row : groupItem) {
for (Integer col : row) {
System.out.print(col + " ");
}
System.out.println();
}
}
}
java分组排序的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于javalist分组、java分组排序的信息别忘了在本站进行查找喔。