Этим методом решены две предыдущие задачи.
public static void main(String[] args) throws Exception {
BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));
String filename=buff.readLine();
//filename="/storage/emulated/0/DCIM/1.txt";
FileInputStream is=new FileInputStream(filename);
List<Byte> list=new ArrayList<>();
while(is.available()>0){
list.add((byte)is.read());
}
Collections.sort(list);
int[][] array=new int[256][2];
Byte earlyer=list.get(0);
int count=0,mapCount=0;
for(Byte byt:list){
if(earlyer.equals(byt)){
count++;
}else{
earlyer=byt;mapCount++;
count=1;
}
array[mapCount][1]=earlyer;
array[mapCount][0]=count;
}
for(int k=0;k<array.length-230;k++){
if(array[k][0]!=0)
System.out.print( array[k][1]+" ");
}
is.close();
}
package com.javarush.task.task18.task1805;
import java.io.BufferedReader;
import java.io.*;
import java.io.InputStreamReader;
import java.util.*;
import java.util.TreeSet;
/*
Сортировка байт
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader buff=new BufferedReader(new InputStreamReader(System.in));
String filename=buff.readLine();
//filename="/storage/emulated/0/DCIM/1.txt";
FileInputStream is=new FileInputStream(filename);
List<Byte> list=new ArrayList<>();
while(is.available()>0){
list.add((byte)is.read());
}
Collections.sort(list); is.close() ;
//System.out.println(list);
//Map<Byte,Integer> map=new HashMap<>();
int[][] array=new int[256][2];
Byte earlyer=list.get(0);
int count=0,mapCount=0;
for(Byte byt:list){
if(earlyer.equals(byt)){
count++;//mapCount++;
}else{
earlyer=byt;mapCount++;
count=1;
}
array[mapCount][1]=earlyer;
array[mapCount][0]=count;
}
for(int k=0;k<array.length-230;k++){
if(array[k][0]!=0)
System.out.print( array[k][1]+" ");
}
/*
for (int i = 0; i < array.length - 1; i++) {
for (int j = i + 1; j < array.length; j++) {
if (array[i][0] < array[j][0]) {
int a = array[i][0];
int z = array[i][1];
array[i][0] = array[j][0];
array[i][1] = array[j][1];
array[j][0] = a;
array[j][1] = z;
}
}
}
for(int k=0;k<array.length-230;k++){
//System.out.println( ":"+array[k][0]+" <> "+array[k][1]+":");
}
earlyer=(byte)array[0][0];
for(int k=0;k<array.length-230;k++){
if(earlyer.equals((byte)array[k][0])){
System.out.print(array[k][1]+" ");
}else{
//System.out.println(array[k][1]+"<");
}
}*/
is.close();
}
}