1

my text is

---- SınİSırU, SınİUzO puanları azalan :
------ {deneme deneme deneme}{ANYA}{LTD. ŞTİ.}{1.75}{1.25}{14.00}{10.00}{1.75}{1.2}{false}
------ {deneme deneme deneme }{DZLİ}{ ŞTİ.}{1.43}{1.14}{11.43}{9.14}{1.43}{0.57}{false}
------ {deneme deneme deneme }{MEİN}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{HAY}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{AHAN}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{MSA}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{Ş}{ ŞTİ.}{1.29}{1.10}{10.29}{8.76}{1.29}{0.55}{false}
------ {deneme deneme deneme }{KO}{. ŞTİ.}{1.25}{1.08}{10.00}{8.67}{1.25}{0.54}{false}

kolon1:1.75,1.43,1.29...

kolon2:1.25,1.14,1.10..

then ı sorted them smallest to bigger.

there are replaced number ı dont want replaced number. for exemaple if my contain text contain 3,3,3,3,3,2,2,2,2,1,1,1,1,1,1

ı want only 1 2 3

 public class PointStatue {


    private static List<Double> col1 = new ArrayList<Double>(); 
    private static List<Double> col2 = new ArrayList<Double>();
    private static List<Double> col3 = new ArrayList<Double>();
    private static  List<Double> col4 = new ArrayList<Double>();
    private static List<Double> col5 = new ArrayList<Double>();
    private static List<Double> col6 = new ArrayList<Double>();
    private static List<Double> list=new ArrayList<Double>();


    private static List<Double> numbers = new ArrayList<Double>();

    public static void main(String[] args) throws IOException {

        ArrayList<String> puan;
        puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
        System.out.format("%d kayıt okundu.%n", puan.size());

        for (int j = 0; j < puan.size(); j++) {

            String point = puan.get(j);

            String[] edit = point.split("[\\{\\}\\)]");

            for (String s : edit) {

                String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
                String b = a.replaceAll("[\\.]+", ",");
                Scanner scanner = new Scanner(b);

                while (scanner.hasNext()) {

                    if (scanner.hasNextDouble()) {
                        Double doubleValue = scanner.nextDouble();  
                        numbers.add(doubleValue);
                        // System.out.println(Arrays.deepToString(numbers.toArray()));

                    }// if scan end

                    else {

                        //if it is string comes value here
                        String stringValue = scanner.next();

                    }// if scan end

                }// while end

            }// for string s

        }// for j end


        int col=1;

        for(int i=0;i<numbers.size();i++)
        {

            Double rowValue = numbers.get(i);

            switch(col)
            {
            case 1:
                col1.add(rowValue);
                Collections.sort(col1);
                col++;
                break;
            case 2:
                col2.add(rowValue);
                Collections.sort(col2);
                col++;
                break;
            case 3:
                col3.add(rowValue);
                Collections.sort(col3);
                col++;
                break;
            case 4:
                col4.add(rowValue);
                Collections.sort(col4);
                col++;
                break;
            case 5:
                col5.add(rowValue);
                Collections.sort(col5);
                col++;
                break;
            case 6:
                col6.add(rowValue);
                Collections.sort(col6);
                col = 1;
                break;

            }//switch end

        }//for i end


        System.out.println("kolon1"+col1);
        System.out.println("kolon2"+col2);
        System.out.println("kolon3"+col3);
        System.out.println("kolon4"+col4);
        System.out.println("kolon5"+col5);
        System.out.println("kolon6"+col6);

    }// main end

    private static ArrayList<String> okuDiziyeKoy(String dosyaAdı) {

        ArrayList<String> dizi = new ArrayList<String>();
        try {
            FileInputStream fIS;
            fIS = new FileInputStream(dosyaAdı);
            Reader r = new InputStreamReader(fIS, "ISO-8859-9");
            BufferedReader bR = new BufferedReader(r);
            String satır;

            while ((satır = bR.readLine()) != null) {
                dizi.add(satır);

            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return dizi;
    }// okuDiziyeKoyEnd

}// class end
2
  • 1
    can't you use a Set instead of List? for example look at HashSet Commented Jul 17, 2013 at 12:46
  • ı dont want change my arraylist value.. ı only want block replaced number Commented Jul 17, 2013 at 12:53

3 Answers 3

4

Take a look at TreeSet:

A NavigableSet implementation based on a TreeMap. The elements are ordered using their natural ordering, or by a Comparator provided at set creation time, depending on which constructor is used.

This should make sure that you have only one of each element and that the list is sorted according to what you need.

Sign up to request clarification or add additional context in comments.

5 Comments

but ı shouldnt change my real value because this code will be 1500 double value after that
@user2583040, It doesn't change the real value - TreeSet simultaneously sorts and de-duplicates, which is exactly what you asked for. If you want the values back in an ArrayList after that's done, just call new ArrayList(treeSetInstance);
@user2583040: Just as @David suggested, all you need to do is to iterate over your current list and put your values in the TreeSet. The set will automatically sort and remove any duplicates you might have in your data.
@npinti do you have any example about it? because ı never ever hear treeset :(
@user2583040: YOu can check here: tutorialspoint.com/java/java_treeset_class.htm This is a very basic example but it should cover what you need. You can alternatively provide a comparer so that you can chose the way that the objects are sorted. I'd recommend you check the Javadoc (linked in my answer) for more information.
4

simple buddy :)

package com.blogspot.arashmd.examples;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}

and with your code business

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

    import java.io.IOException;
    import java.util.*;
    public class PointStatue {
    private static List<Double> col1 = new ArrayList<Double>(); 
    private static List<Double> col2 = new ArrayList<Double>();
    private static List<Double> col3 = new ArrayList<Double>();
    private static  List<Double> col4 = new ArrayList<Double>();
    private static List<Double> col5 = new ArrayList<Double>();
    private static List<Double> col6 = new ArrayList<Double>();
    private static List<Double> list=new ArrayList<Double>();


    private static List<Double> numbers = new ArrayList<Double>();

    public static void main(String[] args) throws IOException {

        ArrayList<String> puan;
        puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
        System.out.format("%d kayıt okundu.%n", puan.size());
        Double doubleValue;
        for (int j = 0; j < puan.size(); j++) {

            String point = puan.get(j);

            String[] edit = point.split("[\\{\\}\\)]");

            for (String s : edit) {

                String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
                String b = a.replaceAll("[\\.]+", ",");
                Scanner scanner = new Scanner(b);

                while (scanner.hasNext()) {

                    if (scanner.hasNextDouble()) {

                        doubleValue = scanner.nextDouble();
                        if(!numbers.contains(doubleValue)){
                        numbers.add(doubleValue);
                        }
                        // System.out.println(Arrays.deepToString(numbers.toArray()));

                    }// if scan end

                    else {

                        //if it is string comes value here
                        String stringValue = scanner.next();

                    }// if scan end

                }// while end

            }// for string s

        }// for j end


        int col=1;

        for(int i=0;i<numbers.size();i++)
        {

            Double rowValue = numbers.get(i);

            switch(col)
            {
            case 1:
                col1.add(rowValue);

                col++;
                break;
            case 2:
                col2.add(rowValue);

                col++;
                break;
            case 3:
                col3.add(rowValue);

                col++;
                break;
            case 4:
                col4.add(rowValue);

                col++;
                break;
            case 5:
                col5.add(rowValue);

                col++;
                break;
            case 6:
                col6.add(rowValue);

                col = 1;
                break;

            }//switch end

        }//for i end
        Collections.sort(col1);
        Collections.sort(col2);
        Collections.sort(col3);
        Collections.sort(col4);
        Collections.sort(col5);
        Collections.sort(col6);
        System.out.println("kolon1"+col1);
        System.out.println("kolon2"+col2);
        System.out.println("kolon3"+col3);
        System.out.println("kolon4"+col4);
        System.out.println("kolon5"+col5);
        System.out.println("kolon6"+col6);

    }// main end  

Comments

2

try this, it finds duplicate values in all rows, and each row too, works for me :)

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class PointStatue {
/*private static List<Double> col1 = new ArrayList<Double>(); 
private static List<Double> col2 = new ArrayList<Double>();
private static List<Double> col3 = new ArrayList<Double>();
private static List<Double> col4 = new ArrayList<Double>();
private static List<Double> col5 = new ArrayList<Double>();
private static List<Double> col6 = new ArrayList<Double>();
private static List<Double> col7 = new ArrayList<Double>();
private static List<Double> col8 = new ArrayList<Double>();*/
//private static List<Double> list=new ArrayList<Double>();
private static ArrayList<List<Double>> rows=new ArrayList<List<Double>>();

private static List<Double> numbers = new ArrayList<Double>();
private static void okuDiziyeKoy(String path,ArrayList<String> arr) throws Exception{
  BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  //skip the first line
  br.readLine();
  String g;
  while((g=br.readLine())!=null){
    arr.add(g);
  }
}
public static void main(String[] args) throws Exception {
    ArrayList<String> puan = new ArrayList<String>();
    okuDiziyeKoy("C:/deneme/HW.txt", puan);
    //   puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
    System.out.format("%d kayıt okundu.%n", puan.size());
    Double doubleValue;

    for (int j = 0; j < puan.size(); j++) {
      List<Double> listToAdd=new ArrayList<Double>();
        rows.add(j, listToAdd);
        String point = puan.get(j);
        //split data(line) by }{
        String[] edit = point.split("[}][{]");
        for(int l=3;l<edit.length-1;l++){
          //parsing String as double
          doubleValue=Double.parseDouble(edit[l]);
          //check if double value is not exist then add it to list
          if(!numbers.contains(doubleValue)){
          numbers.add(doubleValue);
          }
          if(!listToAdd.contains(doubleValue)){
            listToAdd.add(doubleValue);
          }
        }
       /* for (String s : edit) {

            String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
            String b = a.replaceAll("[\\.]+", ",");
            Scanner scanner = new Scanner(b);

            while (scanner.hasNext()) {

                if (scanner.hasNextDouble()) {

                    doubleValue = scanner.nextDouble();
                    if(!numbers.contains(doubleValue)){
                    numbers.add(doubleValue);
                    }
                    // System.out.println(Arrays.deepToString(numbers.toArray()));

                }// if scan end

                else {

                    //if it is string comes value here
                    String stringValue = scanner.next();

                }// if scan end

            }// while end

        }// for string s

    }// for j end*/

        }
    Collections.sort(numbers);
    System.out.println("Unique values(in all rows): ");
    for(Double d :numbers){
        System.out.print(d+" ");
      }
    System.out.println();
    /*int col=1;
    for(int i=0;i<numbers.size();i++)
    {

        Double rowValue = numbers.get(i);

        switch(col)
        {
        case 1:
            col1.add(rowValue);

            col++;
            break;
        case 2:
            col2.add(rowValue);

            col++;
            break;
        case 3:
            col3.add(rowValue);

            col++;
            break;
        case 4:
            col4.add(rowValue);

            col++;
            break;
        case 5:
            col5.add(rowValue);

            col++;
            break;
        case 6:
            col6.add(rowValue);

            col = 1;
            break;

        }//switch end

    }//for i end*/
   /* Collections.sort(col1);
    Collections.sort(col2);
    Collections.sort(col3);
    Collections.sort(col4);
    Collections.sort(col5);
    Collections.sort(col6);*/
    /*System.out.println("kolon1 "+col1);
    System.out.println("kolon2 "+col2);
    System.out.println("kolon3 "+col3);
    System.out.println("kolon4 "+col4);
    System.out.println("kolon5 "+col5);
    System.out.println("kolon6 "+col6);*/
    //sorting each row
    for(int i=0;i<rows.size();i++){
      Collections.sort(rows.get(i));
    }
    //showing each row(array)
    for(int i=0;i<rows.size();i++){
      System.out.println("kolon"+i+": "+rows.get(i));
    }

}// main end  
}

dup in columns:

/*
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class DupRemove {
public static void main(String...arg){ 
  double val[]={1,4.3,5,2,4,4,4,6.5,2,2,2,2,2,3.5,3.7,4,7,8,9};
  for(int i=0;i<val.length;i++){
    add(val[i]);
  }
  Collections.sort(list);
  System.out.println(list);
 }
static List<Double> list=new ArrayList<>();
public static void add(double d){
  if(!list.contains(d)){list.add(d);}
}
}
*/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class PointStatue {
/*private static List<Double> col1 = new ArrayList<Double>(); 
private static List<Double> col2 = new ArrayList<Double>();
private static List<Double> col3 = new ArrayList<Double>();
private static List<Double> col4 = new ArrayList<Double>();
private static List<Double> col5 = new ArrayList<Double>();
private static List<Double> col6 = new ArrayList<Double>();
private static List<Double> col7 = new ArrayList<Double>();
private static List<Double> col8 = new ArrayList<Double>();*/
//private static List<Double> list=new ArrayList<Double>();
private static ArrayList<List<Double>> rows=new ArrayList<List<Double>>();

private static List<Double> numbers = new ArrayList<Double>();
private static void okuDiziyeKoy(String path,ArrayList<String> arr) throws Exception{
  BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(path)));
  //skip the first line
  br.readLine();
  String g;
  while((g=br.readLine())!=null){
    arr.add(g);
  }
}
public static void main(String[] args) throws Exception {
    ArrayList<String> puan = new ArrayList<String>();
    okuDiziyeKoy("C:/deneme/HW.txt", puan);
    //   puan = okuDiziyeKoy("C:\\deneme\\HW.txt");
    System.out.format("%d kayıt okundu.%n", puan.size());
    Double doubleValue;
    for (int j = 0; j < 6; j++) {
      rows.add(new ArrayList<Double>());
    }
    for (int j = 0; j < puan.size(); j++) {
        String point = puan.get(j);
        //split data(line) by }{
        String[] edit = point.split("[}][{]");
        for(int l=3;l<edit.length-1;l++){
          //parsing String as double
          doubleValue=Double.parseDouble(edit[l]);
          //check if double value is not exist then add it to list
          if(!numbers.contains(doubleValue)){
          numbers.add(doubleValue);
          }
          if(!rows.get(l-3).contains(doubleValue)){
            rows.get(l-3).add(doubleValue);
          }
        }
       /* for (String s : edit) {

            String a = s.replaceAll("[\\}\\-\\>\\>\\]\\[\\#\\*\\{]+", "");
            String b = a.replaceAll("[\\.]+", ",");
            Scanner scanner = new Scanner(b);

            while (scanner.hasNext()) {

                if (scanner.hasNextDouble()) {

                    doubleValue = scanner.nextDouble();
                    if(!numbers.contains(doubleValue)){
                    numbers.add(doubleValue);
                    }
                    // System.out.println(Arrays.deepToString(numbers.toArray()));

                }// if scan end

                else {

                    //if it is string comes value here
                    String stringValue = scanner.next();

                }// if scan end

            }// while end

        }// for string s

    }// for j end*/

        }
    Collections.sort(numbers);
    System.out.println("Unique values(in all rows): ");
    for(Double d :numbers){
        System.out.print(d+" ");
      }
    System.out.println();
    /*int col=1;
    for(int i=0;i<numbers.size();i++)
    {

        Double rowValue = numbers.get(i);

        switch(col)
        {
        case 1:
            col1.add(rowValue);

            col++;
            break;
        case 2:
            col2.add(rowValue);

            col++;
            break;
        case 3:
            col3.add(rowValue);

            col++;
            break;
        case 4:
            col4.add(rowValue);

            col++;
            break;
        case 5:
            col5.add(rowValue);

            col++;
            break;
        case 6:
            col6.add(rowValue);

            col = 1;
            break;

        }//switch end

    }//for i end*/
   /* Collections.sort(col1);
    Collections.sort(col2);
    Collections.sort(col3);
    Collections.sort(col4);
    Collections.sort(col5);
    Collections.sort(col6);*/
    /*System.out.println("kolon1 "+col1);
    System.out.println("kolon2 "+col2);
    System.out.println("kolon3 "+col3);
    System.out.println("kolon4 "+col4);
    System.out.println("kolon5 "+col5);
    System.out.println("kolon6 "+col6);*/
    //sorting each row
    for(int i=0;i<rows.size();i++){
      Collections.sort(rows.get(i));
    }
    //showing each row(array)
    for(int i=0;i<rows.size();i++){
      System.out.println("kolon"+(i+1)+": "+rows.get(i));
    }

}// main end  
}

7 Comments

my pleasure buddy, so did you got your answer? does it work good? I hope there is no any problem/issue? Hallelujah :)
dude =) you put n kolons but if you look my text there is 6 numbers .ı take first numbers like 1.75, 1.43,1.29 1.29. I put them on one array, 2. numbers to other array, ı have 6 array because ı have 6 point near all of sencentence.Then ı sort them.. now you take n kolons. But ı have to be take 6 kolons because ı take 6 point only. ı try aplied my code but ı cant it. so sory dude :( ı take your time .. very very thanks..
this code works as you exactly want, it contains one list for each row, and your text file contains 8 line which each line has 6 points, I also add all of the numbers into numbers list, and rows contains list of each row value, in for loop it checks the duplication then insert, but it is easy for columns too, I will add it for columns too buddy :)
I updated the answer, check the second, one, may you need this, I hope :))
its work very goood :D you are best of the coder in the world in my mind.. thank you so much dude =)))) so much thank you...
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.